我是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应用程序的用户.
任何帮助将非常感谢!