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
@詹姆斯你能給我一些例子嗎? –