1
我正在开发一个使用socket.io的实时网络应用程序。我关心的是,在客户端通过<script>/socket.io/socket.io.js</script>
加载socket.io js文件时,它将io实例公开为全局对象。现在,如果你打开Chrome开发者工具,现在可以创建如何在客户端保护socket.io?
var socket = io.connect();
人到服务器的连接,现在可以发出事件和发送恶意数据到服务器正在监听到客户端发出 事件。我有这个在我的客户端代码为例:
(function (sio) {
var socket = sio.connect();
// some code here...
// once a user submitted the comment, it will emit an comment:create event to the
// server
socket.emit("comment:create", comment);
}(io));
在Chrome开发者工具
,我可以创建一个连接,然后发出了一些恶意的参数相同的事件可能会崩溃,我的应用程序一样传递一个null作为第二个论点。有没有办法来防止这种问题?
编辑:我目前的解决方案是在我的客户端代码中创建io
实例的本地副本,然后将全局io
对象设置为null以防止发生另一个连接。
谢谢你!因为我使用的是socket.io,io.set('authorization')是我应该在会话中存储令牌的时候。 – James
@詹姆斯你能给我一些例子吗? –