我想知道是否有可能在清單文件或其他地方指定屬性,並禁用在我的應用程序的窗口中使用JavaScript控制檯。禁用javascript控制檯將不允許用戶簡單地給自己的錢,他們將被迫正確地玩遊戲。有誰知道是否有可能在應用程序中禁用JavaScript控制檯?它會在未來的Chrome版本中出現嗎?在我的chrome webstore應用程序中禁用檢查元素/ javascript控制檯?
回答
與打開的網頁或正在處理的未打包應用程序相比,打包應用程序中的控制檯訪問權限已經減少。鼠標上下文菜單不會提供輸入開發人員工具,並且chrome菜單在應用程序中不存在。唯一的選擇來自Chrome:擴展程序頁面或Chrome Apps開發人員工具。
有動機的用戶將有其他幾條路線,包括修改客戶端的源代碼。使用JavaScript混淆器進行處理會稍微困難一些。
如果您必須保護遊戲邏輯以防止作弊,您需要從驗證玩家操作的服務器執行此操作。這也可以脫機工作,通過緩存遊戲操作並在可能時發送驗證。但是,這到底關係到什麼?如果是單人遊戲,則不會太多。如果有排行榜,讓他們成爲社交排行榜,這樣欺騙者只會欺騙他們的朋友。如果它完全是多人遊戲,那麼你必須驗證。 ;)永遠不要相信客戶。
你需要使用閉包,然後你可以保護他們不應該修改的代碼部分。例如,假設你有一個遊戲,他們回答一個簡單的數學問題來獲取金錢,當他們有足夠的錢,我們會說1000美元,他們可以買一把槍。你不想讓他們能夠只爲他們的賬戶增加資金,但他們應該能夠回答問題以獲得收益。你只露出getMoney功能,以及其他隱藏的一切,就像這樣:
var game = function() {
var money = 0;
var hasGun = false;
var getMoney = function() {
response = prompt("What is 2+2?");
if (response == 4) money += 100;
alert("You have $" + money);
}
var showMoney = function() {
console.log(money);
}
var buyGun = function() {
if (money >= 1000) {
hasGun = true;
money -= 1000;
alert("You bought a gun!")
}
else alert("Not enough money!")
}
//we'll use this to expose methods and variables.
var public =
{
getMoney: getMoney,
buyGun: buyGun,
showMoney: showMoney
}
return public;
}()
game.getMoney();
他們可以從控制檯的暴露功能中訪問的唯一的事情就是問法和showMoney方法。獲得更多錢的唯一方法是通過詢問方法來完成。即使在控制檯中,他們寫道:
game.money = 1000;
game.showMoney(); //returns 0;
game.hackForMoney = function() { money = 1000; }
game.hackForMoney();
game.showMoney(); //returns 0;
game.showMoney = function() { return 1000; }
game.buyGun(); //alerts "Not enough money!"
現在有人可以訪問控制檯,這沒關係。
這只是答案的一半。你還需要限制它們通過使它們只讀屬性來重新定義遊戲的所有屬性(以及遊戲本身,它實際上是'window.game')。看到這裏:http://stackoverflow.com/questions/366047/can-read-only-properties-be-implemented-in-pure-javascript/366086#366086 –
- 1. 控制檯中的檢查元素
- 2. Python在程序中禁用控制檯?
- 3. Javascript控制檯應用程序?
- 4. 在控制檯應用程序中禁用粘貼
- 5. 禁用chrome://檢查IONIC2應用程序中的調試
- 6. 在Javascript控制檯中控制Chrome Web Inspector?
- 7. 禁用流星製作應用程序的控制檯例外
- 8. 在控制檯應用程序中隱藏Chrome WebDriver
- 9. 如何在使用檢查元素時關閉控制檯
- 10. TIdTCPServer.OnExecute在控制檯應用程序中
- 11. Chrome元素檢查
- 12. 如何從控制檯應用程序訪問UI元素
- 13. MongoDB控制檯JavaScript不能在應用程序中使用?
- 14. 控制檯應用程序中的HttpContext
- 15. 控制檯應用程序中的System.Drawing.Color
- 16. C++應用程序中的控制檯
- 17. 控制檯應用程序中的iframe
- 18. 控制檯應用程序中的WriteableBitmapEx?
- 19. 控制檯應用程序中的ConfigurationErrorsException
- 20. 在後臺啓動我的控制檯應用程序
- 21. 檢查輸入數據類型控制檯應用程序C#
- 22. 開發者控制檯|同時顯示檢查器/元素和控制檯
- 23. C#控制檯應用程序密碼輸入檢查器
- 24. ChromeDriver控制檯應用程序隱藏
- 25. 從其他控制檯應用程序運行控制檯應用程序
- 26. 從控制檯應用程序啓動控制檯應用程序
- 27. C#控制檯應用程序%數學總是在我的控制檯應用程序 返回0
- 28. 如何使控制檯應用程序,檢查程序正在運行
- 29. 在控制檯應用程序中運行時按鍵檢測
- 30. C++從遠程控制檯應用程序中檢索內容
它永遠不會發生,而是封裝你的代碼(儘可能多),所以它更難以讓用戶搞砸你不想讓他們搞砸的東西。 – megawac
如何控制「上下文菜單」? –