3

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 の学習を始めていないので、ばかげて聞こえたら申し訳ありません。

4

1 に答える 1

2

@SLaks が言ったように、クライアントがデータを変更していないことを確認することは不可能です。したがって、すべてのトランザクションでサーバーの検証が必要です。ほとんどのゲーム計算はサーバー上で行うのが最善です。Javascript を使用すると、F12 を押すだけでハッキングを開始できるため、不正行為を行う可能性のある人がゲームを悪用するのがより簡単になるというのは正しいことです。通常のゲームでははるかに複雑ですが、それでも可能性は十分にあります。賢くないハッカーから身を守る方法の 1 つは、ゲームの JS コードを縮小することです。

于 2014-06-01T16:58:45.350 に答える