2011-09-03 57 views
0

我有一個Android應用程序,從我的PHP/MySQL網絡服務器獲取數據。 數據本身並不敏感,如果POI是數字的地理數據 - 但對其他人使用/濫用可能有用。如何限制只有我的Android應用程序訪問我的網站

目前,我的應用程序將通過沿線的做成才獲取數據: http://myserver.url.com/data.php?getinfo=a_zip_code

返回的任何數據都將作爲XML返回。我不想要的是某人能夠通過提出自己的數據請求來濫用系統。

我propsal是基於MD5(用戶名+日期+鹽)

一鍵發送GET請求:

http://myserver.url.com/data.php? 
getinfo=a_zip_code&username=$username&key=AABBCCDDEEFFAABBCCDDEEFF 

我可以再重複在服務器上的進程,如果這兩個散列匹配 - 然後我可以返回數據。

  • 用戶名 - 用於查找用戶數據庫
  • 日期 - 改變日常
  • 鹽的關鍵 - 停止任何人產生的關鍵。

是做我想達到的一種好方法還是有其他更適合的方法?

回答

0

我認爲作爲一個關鍵,你可以只使用一個已知的變量 - 沒有md5。將其發佈到您的腳本並獲得結果。另一種方式是發佈你的Android設備個人號碼並將其定義到你的Php腳本中。

+0

使用前一種方法將意味着,如果變量變得已知,那麼任何人都可以獲得訪問權限。通過使用散列 - 嗅探密鑰的有用性僅在一段時間內有效。 (我甚至可以改變日期而不是時間)。施虐者不知道哈希如何組成。 – Nigma

0

我覺得你發佈的方法是足夠的。但是,像所有的安全問題一樣,這都是相對於你所需要的安全性而言的。我遇到過類似的情況,因爲我的Web服務器會返回JSON數據,然後我的應用程序會解析這些數據。再次,沒有任何敏感的東西,但只是我不希望任何人使用的東西。請注意,針對像我們這樣的問題存在相當多的解決方案。您也可以擁有它,以便您的應用程序在訪問任何數據之前「登錄」到您的網站。或者你可以設置某種令牌系統。這取決於你,但似乎你有一個堅實的想法。

+0

或者我應該說你對於你面臨的問題有一個「足夠堅實」的想法。再說一遍,這都是相對的。 – Vinay

0

首先,確保您使用的是HTTPS。其次,不要依賴你的密鑰是完全祕密的。可以對APK進行反編譯,並且可以輕鬆發現密鑰(字符串)。

相關問題