如何保护 Socket.IO 的安全性?

13 浏览
0 Comments

如何保护 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








除了没有任何安全性之外,一切都运行得很好。

0