2013-02-24 165 views
3

我正在爲ios應用程序構建後端,它支持登錄不同的網絡在後端驗證GamceCenter用戶憑證

一旦到網絡的用戶登錄客戶告訴新聞後端,這可能提供世界用戶可能發揮,甚至刪除舊世界的名單。

竊取他人世界的一種方式是說你是他的社交網絡ID。

爲了解決這個與Facebook,我們強制客戶端發送給我們fb_token,從Facebook提供給客戶一個道理,我們在後端使用要求的Facebook如果特定用戶是一個他告訴我們要。

如果蘋果不提供一種方法來驗證這個我明白,如果iOS應用程序要使用遊戲中心,它直接迫使應用開發者也使用iCloud的因爲蘋果可以驗證用戶憑據。

蘋果是否提供任何方式來驗證用戶憑據?

+0

是的,與iOS應用程序的通信是加密和簽名的,但所有系統的安全性都可以繞過。 – Guillermo 2013-02-24 11:12:38

回答

0

iOS上的客戶端可以檢索有關當前登錄的GameCenter中的播放器的信息,該播放器與iCloud無關。 如果您想使用iCloud進行身份驗證,您可能會擁有與您想要的不同的玩家。

我認爲解決方案是讓客戶端在GameCenter中檢索播放器信息,並以加密方式(比如HTTPS)將其發送到服務器,包括時間戳和其他可能的動態信息。這樣你就會知道用戶信息是從客戶端應用程序本身發出的,並且沒有人在中間。這就是你正在努力的問題:如何確保客戶端 - 服務器通信的安全。

+0

正如評論中所述,通信是在設備首次登錄系統時通過https傳輸的密碼進行簽名的。 客戶端可以在從api獲取game_center_id之後,在與後端進行通信並使用來自玩家的不同game_center之後,例如更好的世界或進度,來鉤住debuger。從現在起,黑客可以在其他用戶的世界中玩,並且在後端無法檢查客戶端是否合法。使用臉書我們要求臉書服務器,看看用戶是否是假裝的。 – Guillermo 2013-03-02 01:06:36

+0

所以你假設黑客可以反彙編使用的協議,並找出使用的密碼,並在流中注入不同的GCid。這是一個艱鉅的任務。除非你的遊戲溝通清楚了,這是錯誤的。使用https來處理所有事情,如果你喜歡,可以使用時間戳和其他內容對CGid進行加密,黑客需要徹底分解該程序來確定發生了什麼。 – Rikkles 2013-03-02 09:30:32

+0

是的,之前發生的事情是,一個用戶這樣做,發佈一個exe文件,允許所有用戶以一種簡單的方式做到這一點。即使在遊戲論壇中銷售該應用的人也是如此。 問題是沒有訪問別人的數據。正在成爲別人。 – Guillermo 2013-03-02 10:26:46