小编Ron*_*nho的帖子

Socket.io中的新增功能,如何防止Socket.io客户端脚本入侵

我是Socket.IO的新手,我刚刚在http://socket.io/get-started/chat/上实现了有关Socket.IO的教程说明.这很有趣.

但现在我对安全感到担忧.发送消息的客户端代码是:

<script>
  var socket = io();
  $('form').submit(function(){
    socket.emit('chat message', $('#m').val());
    $('#m').val('');
    return false;
  });
  socket.on('chat message', function(msg){
    $('#messages').append($('<li>').text(msg));
  });
</script>
Run Code Online (Sandbox Code Playgroud)

函数调用socket.emit将向服务器发送消息,通过此流程,访问Web的任何人都可以轻松修改Javascript代码(使用Chrome devtools或Firebug)向服务器发送任何消息.

例如,用户可以按如下方式添加代码行:

<script>
   $(document).load(function() {
       socket.emit('chat message', '1122');
       socket.emit('get_users', null);
       socket.emit('delete_user', 1);        // What ever he wants
   });
</script>
Run Code Online (Sandbox Code Playgroud)

这种黑客可能会对系统造成危害.

我的问题是,如何防止用户修改Javascript代码并手动调用socket.io服务器,包括有权登录Web应用程序的用户.

任何帮助将非常感谢!

javascript security node.js socket.io

4
推荐指数
1
解决办法
3963
查看次数

标签 统计

javascript ×1

node.js ×1

security ×1

socket.io ×1