2015-11-29 20 views
-2

我這樣做隨機抽獎。Javascript代碼是可編輯的?

  • 生成從1到10000
  • 隨機數,如果是小於5000雙的硬幣的價值
  • 如果不把他們帶走

當我測試的系統,我可以做你的勝率將超過2倍大,通過檢查元素去採購,尋找我的JavaScript文件,並改變賭注* 2爲賭注* 999

現在我需要重新做,因爲我不希望我的網站用戶作弊。

不是從腳本文件中添加腳本,而是直接寫在<script> code </script>之間的HTML頁面中,然後我覺得自己像上帝一樣,因爲我認爲我解決了這個問題。

是應對這種這種正確的方法?

+4

Blah等等等等等等......你想說什麼? **解決方案:**處理服務器端腳本和AJAX。 –

+2

你不能信任客戶端的任何東西。永遠。 – SLaks

+3

請使用句子和換行符以提高可讀性。在句子上跑是徵稅以試圖遵循 –

回答

0

作弊的遊戲是不是你的源代碼是可編輯與否。

音樂產業在人們自由複製和分享他們的作品時也存在同樣的問題,他們認爲DRM是避免這種情況的方法。最後,如果您可以在計算機上聽音樂,您將始終可以複製它。

您的遊戲的源代碼也是如此:您可以使用模糊處理,加密或使用複雜的方案來隱藏它,只要它在用戶的計算機上運行,​​它們就能夠更改它。

現在,如果您的某位用戶在本地更改了代碼並讓遊戲報告了假的贏錢,只要這不是真錢,並且只要這不會改變其他用戶的遊戲體驗。

我建議你閱讀以下問題。這不是重複的,但大部分問題應通過閱讀所有答案來回答:What good ways are there to prevent cheating in JavaScript multiplayer games?

2

您發送給客戶端(瀏覽器或其他)的所有代碼(HTML,CSS,Javascript)都是可編輯的。

  1. 決不依賴於客戶端驗證。即使在服務器端驗證
  2. 決不相信用戶輸入,傾銷用戶輸入返回頁面逃逸XSS之前。
  3. 永遠不要將您的業務邏輯放在客戶端代碼中。
  4. 永遠不要信任用戶提供的日期信息作爲請求日期。
  5. 爲每個表格提供參數CSRF

這些是我能想到的最基本的規則。