2011-11-04 15 views
1

具體來說,我想知道我是應該創建一個GKScore還是將分數值保存在我自己的對象中。無論哪種方式,我都會將得分對象保存爲.plist,以防應用程序在成功提交到遊戲中心服務器之前終止。離線排列分數以便稍後提交給Game Center的最佳方法是什麼?

也許將它作爲GKScore保存是有好處的,因爲日期可能會被保留,但更重要的是,GKScore更具防篡改性?我正在尋找能夠直接修改保存文件的作弊者,從而在提交到遊戲中心之前修改他們的分數。

更新:在更仔細地閱讀Game Kit Programming Guide後,它告訴我們在iOS 4中,重新報告分數留給您的應用程序;但是,在iOS 5中,這由後臺的報告任務自動處理。因此,這個問題只與iOS 4真正相關(當然,我和其他大多數人仍然打算全力支持)。

回答

1

我有點晚了討論,但是....

本主題中的遊戲中心Essentials簡要討論了阿倫謝弗,蘋果遊戲技術傳播者交談。這在2011年發佈到iTunes U.

在22:30左右,討論轉向歸檔GKScore對象以供後來提交。爲了限制作弊,該建議是:

  • 添加校驗文件
  • 哈希添加到比分
  • 限分數提交到著名的「有效」量
1

沒有辦法使此功能安全,因爲這是隱含的違反CWE-602。無論該值是存儲在閃存還是隨機存取存儲器中,在一天結束時用戶對設備的控制權比您更多。作爲一名開發者,你是一個客人,你應該打得好。也許你正在尋找「(in)security though obscurity」。

+0

感謝信息,但在我的問題中,我假設排隊分數提供了操縱分數的窗口。我的問題是:將GKScore的分數編碼爲更多篡改 - _resistant_?我沒有看過編碼到NSData對象中的數據,然後保存到.plist,所以我沒有參考。 – jonsibley

+0

@Jonathan Sibley我不認爲編碼或其他遮蔽數據的方法會有絲毫幫助。 – rook

+1

作爲一名遊戲開發人員,我的責任是努力維護高分列表等內容的完整性。這包括做出合理的努力來使歸檔的GKScore防篡改,只要它對不想篡改的客戶是透明的。您似乎已將我使用的「安全」一詞表示爲100%不是篡改任何人都可以在地球上。毫無疑問,這樣的安全水平是不可能實現的。 – jonsibley

相關問題