2013-01-04 111 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代碼來保護自己免受不智的黑客攻擊。

相關問題