gpt4 book ai didi

javascript - 如何阻止第三方使用的node js服务器地址和端口

转载 作者:太空宇宙 更新时间:2023-11-04 01:50:20 24 4
gpt4 key购买 nike

我有phpmyadmin, PHP , nodeJS在同一台服务器上运行,我使用下面的代码将数据从 nodejs 获取到我的 php 网站。因此任何人都可以复制该代码并添加到某个 HTML 页面并检查我的 Nodejs 服务器在此端口上发送的内容。有什么办法可以阻止这个nodejs服务器地址在我的服务器之外使用?

这是客户端代码

var socket  = io.connect('http://xxx.xxx.xx.xx:8000');
socket.on('device', function (data) {
var commentData = JSON.parse(data);
console.log(commentData);
var cID = commentData.data.cID;
var dID = commentData.data.dID;
var status = commentData.data.status;
if(status =='online'){
$("#"+cID+dID).attr('class','online-icon');
}
if(status =='offline'){
$("#"+cID+dID).attr('class','offline-icon');
}

});

这是服务器端代码

var express = require('express');
var socket = require('socket.io');
var http = require('http').Server(app);
var request = require('request');
var app = express();
app.use(express.static('views'));
app.set('views', 'views/product');
app.use(express.static('./public'));
var bodyParser = require('body-parser')
var server = app.listen(8000, function () {
});
var io = socket(server);
io.on('connection', function (socket) {
io.sockets.emit('device', 'test');
});

最佳答案

Is there any way to block this nodejs server address use outside from my server?

联网计算机通常至少有两个网络接口(interface):“本地”接口(interface)和面向网络的接口(interface)。如果您的服务只需要在服务器上相互通信,请将服务绑定(bind)到本地服务(localhost 又名 127.0.0.1)。

您使用的是 express,因此您需要在 listen 中执行此操作调用,与 Node.js 自己的 Server.listen 相同。例如:

var server     = app.listen(8000, '127.0.0.1', function () {
// -------------------------------^^^^^^^^^^^^^
});

或者对于 IPv6:

var server     = app.listen(8000, '::1', function () {
// -------------------------------^^^^^^^
});

然后网络上的其他主机将无法连接到该服务。

关于javascript - 如何阻止第三方使用的node js服务器地址和端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49941089/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com