在javascript寫了一個服務器 - 客戶端應用程序/ HTML5它應該允許客戶端通信/服務器端使用Node.js的實時玩遊戲。我如何保存未經授權的操作在JavaScript
我知道使用私有變量等。但如何防止整個遊戲引擎通過控制檯API進行未經授權的訪問?
,如如何寫這樣的方式,所有的變量落入私人範圍,一旦開始運行,他們幾乎沒有單獨在全球範圍內註冊一個變量,因此,沒有人能惹的遊戲了!
從我的研究,我可以做這樣的事情
function Game(){
// All declarations here
// Start a logic in here
}
,然後調用它
new Game();
將做到這一點?但有沒有更好的方法來做同樣的事情?
,所以我做的事情是這樣的最安全的..我也可以從服務器端編寫一個基於MD5令牌系統,使AJAX請求變得很難複製,比方說服務器爲每個數據包提供一個md5,這個md5必須發送回服務器以便下一次調用。因爲所有數據包都可以在私有範圍內工作,所以沒有人可以訪問md5哈希[希望],因此我們添加一層安全:) – ShrekOverflow 2012-02-11 13:46:59
@Ahhhhhhh在我的例子中,我攔截了一個相對無害的方法。但是,通過'XMLHttpRequest'對象,可以使用相同的技術來攔截AJAX調用。即使那些沒有JavaScript **知識的人也可以使用Firebug,開發者工具,HttpFox和類似工具讀取HTTP請求。如果您構建JavaScript遊戲,則默認情況下您不應該信任這些請求。最好的辦法是讓服務器計算事件,分數等等。我確信在SO上有很多類似的問題可以解決這些問題。 – 2012-02-11 13:51:47
我已經在服務器上用瘋狂的加密算法做了這種計算,事實上即使是從服務器傳過來的分數 - >加密的客戶端,所以任何試圖理解它們的嘗試都是徒勞的。我正在考慮使用websockets,雖然它更安全,然後firebug等,迄今爲止,沒有辦法攔截他們[至少按我所知道的最佳] – ShrekOverflow 2012-02-11 13:57:15