如何保护 Socket.IO 的安全性?
如何保护 Socket.IO 的安全性?
我已经和Socket.IO一起工作了几天,既兴奋又沮丧。缺乏当前的文档/教程使学习变得非常困难。我终于成功创建了一个基本的聊天系统,但是有一个突出的问题。我该如何确保它的安全性?
有什么能阻止恶意用户复制(或编辑)我的代码并连接到我的服务器?我可以从我的PHP脚本中获取用户名并将其提交给Socket.IO,以便我可以将其识别为该用户(并且PHP当然也是安全的),但是有什么阻止某人只提交一个未注册的用户名?
如何确保提交的事件是真实的,没有被篡改过?
我的基本socket.io聊天作为参考。
服务器:
var io = require('socket.io').listen(8080); var connectCounter = 0; io.sockets.on('connection', function (socket) { connectCounter++; console.log('People online: ', connectCounter); socket.on('set username', function(username) { socket.set('username', username, function() { console.log('Connect', username); }); }); socket.on('emit_msg', function (msg) { // Get the variable 'username' socket.get('username', function (err, username) { console.log('Chat message by', username); io.sockets.volatile.emit( 'broadcast_msg' , username + ': ' + msg ); }); }); socket.on('disconnect', function() { connectCounter--; }); });
客户端:
untitled
除了没有任何安全性之外,一切都运行得很好。