2010-02-15 30 views
5

在我的JavaScript遊戲(用jQuery製作)中,我將玩家位置存儲在數據庫中。當角色在移動時,我只是向specyfic URL發送請求,I.E. mysite.com/map/x1/y3(其中角色的位置是x = 1,y = 3)。javascript遊戲中的ajax安全性

該URL將座標發送到數據庫並檢查是否有其他玩家靠近我們。如果是的話,它也會發送帶有該玩家的名字和座標的JSON對象。

這裏是我的問題 - 如何保護它?有人可以查看我的JavaScript代碼並準備好看起來像mysite.com/map/x100/y234的網址,並將它「傳送」到地圖的其他地方。

+0

你所要求的是完全和完全不可能的。 – rook 2010-02-15 22:02:02

回答

0

您可能會混淆您的JavaScript源代碼。這至少會阻止休閒作弊,但是可能沒有辦法使用JavaScript來使其完全安全。

+0

雖然默默無聞,但並沒有安全這樣的事情。爲了攻擊這個系統,我會使用tamperdata,我不在乎腳本是什麼樣的。 – rook 2010-02-16 08:37:09

8

在瀏覽器中使用JavaScript處理的任何數據/計算都是不安全的,因爲所有的代碼都在本地機器上運行。我會建議列出所有對公平體驗有重要影響的參數,例如玩家位置,分數,資源等等,並計算服務器端這些參數的管理。您只會從瀏覽器收集用戶輸入,並將更新後的狀態發送到瀏覽器進行顯示。

即使您選擇在瀏覽器端計算一些值以避免延遲,您也不應該將它們考慮爲播放器共享的全局狀態,並且您應該將本地狀態與全局狀態重新同步 - 始終在方向全球到當地 - 不時。

與典型的表單處理一樣,您還應該檢查瀏覽器爲用戶輸入發送的值是否落入合理的範圍內。一秒鐘內的相對運動小於一定距離。

+0

+1好的建議! – 2010-02-15 13:52:56