2014-06-13 52 views
0

我已經創建了一個遊戲API,並且該API將被完全客戶端JavaScript + html5應用程序在不同的域中使用。保護API不被濫用

我設法解決所有CORS問題,它工作正常。

該API有一個提交用戶評分的方法。用戶完成遊戲後,JavaScript應用程序會將最終分數提交給API。

但問題是這樣做的安全嗎?因爲有些用戶可能會濫用API將假分數發送到服務器。

另一方面,是否可以安全地創建該Web應用程序完全客戶端來生成分數?

由於提前

+0

從客戶端獲取數據並將其信任在服務器上是否安全? – TheNorthWes

+0

如果客戶端腳本正在生成分數並通過API將其發送到您的服務器,則無 - 這是不安全的。任何人都可以操縱它並創建自己的分數來發送。 –

回答

0

爲運行完全客戶端也不能保證遊戲的簡單的「提交分數」 API;考慮到遊戲公司花在試圖「保護」他們的遊戲免受版權侵權的花費,但這些保護措施經常被忽視。

如果遊戲核心具有足夠的確定性,您可以通過讓客戶端提交他們的行爲抄本然後處理該抄本(重新運行遊戲核心服務器端)來確定實際分數來解決問題。作爲獎勵,您還可以讓其他玩家觀看高分者遊戲的重放:讓他們下載副本並使用副本重新運行遊戲核心,而不是現場玩家輸入(並標記明顯的奶酪以供你的版主,自然而然)。

如果遊戲嚴重依賴於隱藏的信息(例如面朝下的卡片或堆疊不牢固的卡片),則需要將該信息完全保留在客戶端的機器上,並且使用API​​調用來揭示玩家發現的東西他們。否則,玩家在遇到困境時可以「神奇地」做出正確的決定。

如果遊戲在很大程度上依賴於玩家的靈活性,那麼你就會變成一個頗爲污水滔滔的小河:它最終退化爲與多人第一人稱射擊遊戲中的目標機器人,壁虎等相同的問題,與病毒/防病毒軍備競賽相媲美的arms race