隨着JavaScript和HTML5取代Flash的最近大肆宣傳,我想知道 - 如何保護客戶端js代碼?當然,它可以混淆它,但這隻會使它變得更難一些。另外,對於向服務器提交高分的遊戲,在將這些分數發送到服務器之前修改這些分數是不是很容易?我知道即使Flash文件可以被反編譯,但它們可以被混淆,並且閃存反編譯不像在JS中修改數據那樣容易 - 可以使用諸如Firebug的插件輕鬆完成。我想知道大家對此的看法。JavaScript中的安全/保護代碼
11
A
回答
8
在客戶端進行解析的Javascript永遠不會100%安全。有總是是找出它做什麼的方法。前幾天我甚至看到一個工具,它解壓縮包裝的JavaScript,所以你唯一可以做的就是使用「醜陋的」變量名稱(或者實際上,讓一個JavaScript打包器將你的「好」變量名稱變成簡短/醜陋/無意義的)
爲了保護遊戲結果,你必須將一些遊戲邏輯移動到服務器,以便客戶端不能發送任意結果。
總結:不要在javascript代碼中放置祕密,也不要信任來自客戶端的任何內容 - 不管它是來自表單還是生成/通過javascript提交。
0
你說對於向服務器發送高分的遊戲來說,修改javascript和僞造請求太容易了?
除了大小寫的情況,當你在客戶端使用某種加密技術時,它是僞造這種請求的最簡單方式,甚至不會分析腳本,而是自己發送虛假請求。您可以在計算機上輕鬆查看您在服務器和瀏覽器之間發送的所有內容,進行分析和更改
相關問題
- 1. 安裝新的Delphi並安全保護您的源代碼
- 2. 如何保護Javascript代碼?
- 3. Delphi 7 TIdFTP FTP安全(密碼保護)
- 4. 春季安全CSRF保護
- 5. javascript全局變量 - 保護
- 6. 源代碼保護
- 7. 保護Ruby代碼
- 8. 保護PHP代碼
- 9. 保護Ruby代碼
- 10. PHP - 保護代碼
- 11. 在Docker容器中保護Mongo安全
- 12. .NET中的代碼安全
- 13. 保護我的代碼?
- 14. 保護DLL的源代碼
- 15. 從代碼中禁用安全>本地Intranet>啓用保護模式
- 16. 保護來自不安全頁面的JavaScript的REST調用
- 17. 如何在JsonStore Worklight 6.2中實現密碼保護安全性?
- 18. 保護公衆頁面的安全
- 19. 保護web-API訪問的安全
- 20. 保護SQL Server數據庫的安全
- 21. WCF安全 - 保護傳遞的參數
- 22. 使用Python保護網站的安全
- 23. 忘記我的密碼以保護數據庫的安全
- 24. 保護Excel工作簿中的代碼?
- 25. 安全的目錄密碼保護沒有.htaccess
- 26. Firefox的軟件安全設備如何保護密碼?
- 27. 從javascript保護的網站中提取HTML代碼
- 28. 什麼是編碼/保護JavaScript代碼的最佳方式?
- 29. 如何保護源代碼?
- 30. 保護android源代碼
謝謝。即使我確實移動了一些遊戲邏輯,生成要發送到服務器的數據的算法仍然是非常開放的。另外,在採用HTML5時,這不是一個重要因素,特別是在遊戲方面?爲什麼/人們如何預測閃光燈在出路? – BlueSilver 2010-05-10 07:49:31
Flash幾乎和javascript一樣不安全。在那裏有很好的動作反編譯器,即使不可能,你仍然可以嗅探發送給服務器的請求。 除此之外,許多Flash遊戲只是爲了娛樂,而不是爲了獎勵等,所以如果有人在那裏作弊或根本沒有關係。 – ThiefMaster 2010-05-10 07:54:58
不好意思問這個問題,但這不是HTML5採用的一個重要因素嗎?另外,嗅探請求並不像查看源代碼那麼簡單。此外,還有Flash遊戲門戶網站可以讓你獲得高分,因此作弊行爲在那裏很重要。 – BlueSilver 2010-05-10 08:05:03