如何保护 tcp 连接 - nodejs
How to secure tcp connection - nodejs?
我在tcp server
中使用了以下sample code
var server = net.createServer();
server.on('connection', function (socket) {
if(restrictedIP == sock.remoteAddress){
//How to close the particular connection safely without
//affecting other connections
}
socket.on('data', function(data) {
console.log(data);
});
socket.on('close', function(data) {
console.log('client disconnected');
});
});
server.listen(3000, '127.0.0.1');
注意:我有一个检查来验证客户端/服务器ip(第三行)。
问题:
此逻辑是否适合对客户端/服务器进行身份验证。
最主要的是,如何从受限制的IP地址关闭特定连接。第 4 行 - 评论)
场景:
我有两个服务器,一个是客户端服务器,它是express/http服务器,让我们将其命名为server1-express
,另一个是名为server2-tcp
的tcp服务器。
server1-express
服务器将使用 TCP 与server2-tcp
通信。server2-tcp
应该只允许这个特定的server1-express
服务器,它不应该允许连接到任何其他IP,使用 socket.destroy() 会使
server2-tcp
崩溃。使用 socket.end() 将迫使我们
write
服务器。
如何仅允许特定ip
并拒绝所有其他ip
访问?
任何帮助或建议将不胜感激
这取决于您所说的"身份验证"是什么意思,但显然一个 IP 地址可以被多个人使用(例如在路由器后面)。因此,如果这是一个问题,您将不得不提出自己的协议或重用现有的协议(使用经过"实战测试"的协议可能是更好的主意)。一个更"复杂"的例子是使用TLS,它内置于节点中,通过证书/密钥为您提供加密和身份验证,同时仍为您提供原始套接字。
就终止连接而言,您可以通过调用套接字上的.end()
或.destroy()
强制终止套接字来优雅地执行此操作。
相关文章:
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 如何使用密码检测网络中的状态连接
- 如何处理node.js节点mongodb中的连接和查询队列
- Rails-JQueryUIAutcomplete和AJAX不工作,可以't连接到数据库
- Twilio-显示所有连接参与者的远程参与者视频
- 操作放置在画布上的元素之间的连接
- TypeError:_this.store.getState在使用来自Redux的连接时不是函数
- jQuery UI可排序-多连接列表拖动
- 如何使用offer/answer交换来自两个对等连接的流
- 在Qualtrics中,介绍如何动态连接两个滑块
- Node.js:tcp连接中的zlib压缩
- 如何通过节点网络套接字连接ruby TCP服务器
- 是否可以使用本地TCP/IP连接作为两个脚本之间标准I/O的替代
- Ajax请求完成后,jQuery会关闭TCP连接吗?
- node.js服务器泄漏TCP连接
- 在Node Js中,tcp连接中socket的.on函数是什么?
- 在Chrome应用程序不能取消TCP服务器的TCP连接
- 为什么不是'我的helloworld node.js tcp服务器没有连接
- Node.js HTTP和TCP客户端连接
- 如何保护 tcp 连接 - nodejs