2014-03-30 48 views
0

如何確保我向服務器發送的http請求中的數據實際上是由我的應用程序(移動應用程序)生成的,而不是由用戶手動創建的?如何確保http請求不是手工製作的?

例如:如果我有遊戲並且想將用戶的分數提交給服務器,如何確保用戶看不到請求數據並開始向服務器發送手工分數?

我曾考慮過將散列算法和應用程序密鑰一起使用。所以請求會發送四條數據:分數,日期,用戶標識和散列(分數+日期+用戶ID +密鑰)。然後,我可以在服務器上再次執行這個散列操作,並驗證數據是否合法。但是,如何防止黑客能夠拆卸應用程序並查看secret_key是什麼? 除了使用哈希碼對請求進行簽名之外,還有更好的方法嗎?

+1

唯一適當的想法是將遊戲的一些業務邏輯移動到服務器進行驗證,或者以其他方式涉及服務器,以確保服務器端對遊戲過程有控制權並且結果不是假的。 –

回答

4

簡短的回答,你不能。用戶可以通過應用程序執行任何操作,但他們可以通過對應用程序進行逆向工程並執行它的操作來完成。你所能做的就是讓事情變得更難。