2013-01-04 151 views
2

我正在考虑开始学习node.js和socket.io,但我首先有一个问题。首先,socket.io是否安全使用?从socket.io网站一个例子:是否可以安全使用socket.io?

<script src="/socket.io/socket.io.js"></script> 
<script> 
    var socket = io.connect('http://localhost'); 
    socket.on('news', function (data) { 
    console.log(data); 
    socket.emit('my other event', { my: 'data' }); 
    }); 
</script> 

看代码,好像是用标准的工具,如萤火虫,你可以很容易地改变被发送到服务器的数据,如果我想这将成为一个问题创建一个多人游戏,因为我会传递不应该被修改的数据,例如:项目索引,怪物索引等。

对不起,如果我听起来很愚蠢,因为我还没有开始学习socket.io。

+4

从客户端到服务器的任何通信都可以修改。 – SLaks

+0

技术上来说是的,如果你修改了发送的包,但在这种情况下,它甚至没有涉及到,这就是为什么我问是否可以安全地使用它。如果这就像你说的那样,那么这意味着socket.io对于在线游戏,以及几乎任何客户端的东西都不是一个可行的选择......那么是什么? – user1548072

+3

你的问题没有意义。从客户端获得安全通信基本上是不可能的。你需要确认客户端没有说谎。这与Socket.io无关。 – SLaks

回答

1

正如@SLaks所说 - 不可能验证客户端没有修改他们的数据。因此需要在任何事务中进行服务器验证。最好只在服务器上进行大部分游戏计算。 你说得对,用Javascript可以让潜在的作弊者更容易利用这个游戏,因为他们可以打F12并开始黑客攻击。常规游戏比较复杂,但仍然非常有可能。 你可以通过缩小你游戏的JS代码来保护自己免受不智的黑客攻击。

相关问题