我正在考虑开始学习node.js和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>
查看代码,似乎可以使用标准的工具,例如firebug,轻松更改发送到服务器的数据,如果我想创建一个多人游戏,那么这将成为一个问题,因为我要传递数据不应修改,例如:项目索引,怪物索引等。
如果我听起来很傻,很抱歉,因为我尚未开始学习socket.io。
最佳答案
正如@SLaks所说,无法验证客户端是否未修改其数据。因此,在任何事务中都需要服务器验证。最好只在服务器上执行大多数游戏计算。
没错,使用Javascript,潜在的作弊者更容易利用游戏,因为他们可以击中F12并开始黑客攻击。常规游戏要复杂得多,但仍然很有可能。
保护自己免受不聪明的黑客攻击的一种方法是,缩小游戏的JS代码。