2011-12-14 104 views
1

我有一個服務器端腳本,它獲取我的應用程序使用的一些數據。當然,我不希望任何人從我的應用程序訪問數據。我聽說有可能在使用特定軟件時查看設備連接哪個URL。我怎樣才能阻止這些程序看到我打來的網址?或者有更好的方法來保護請求?在Android中保護我的REST請求?

只有我能想到在URL中使用密碼鑰匙的(並檢查它是否在服務器端匹配)的事情:

http://example.com/getdata?key=897ihrduiuyqewudiew&get=something 

不過那可能是不夠的,安全認證。嗅探程序仍然可以獲得該網址。任何簡單的方法來更安全地做到這一點?

回答

0

最簡單的方法是使用HTTPS。這樣,嗅探器就只能知道你連接的服務器。

存在使用複雜的挑戰有一個獨特的密鑰只適用於時間/短時間的單一要求,如WSSE其他方法(請參閱本文http://www.xml.com/pub/a/2003/12/17/dive.html

+0

HTTPS可能是什麼可以爲我做,但我不知道如何實現它無論在服務器和Android的一面。我之前曾經搜索過它,但找不到我能理解的例子。 – 2011-12-14 09:56:20

+0

你在android方面沒有任何事情要做。在服務器端,你需要一個證書,避免rapidssl,因爲有Android 2.2的問題。關於如何在許多Web服務器上包含SSL證書的教程有很多 – njzk2 2011-12-14 10:00:27

0

很少有你可以做爲了保護服務器請求。有人會始終能夠看到您的應用程序命中的URL,並在查詢字符串中使用密碼將無濟於事。爲了保護您的應用程序,您需要使用HTTPS和某種形式的身份驗證。用戶需要提供用戶名和密碼才能連接。

0

如果我理解正確,您應該執行相互認證。基本上,您的客戶端和服務器上都有證書。當向服務器發出請求時,服務器會驗證該請求是否由已知客戶端簽名。

所以,即使嗅探器知道其網址,並試圖發出服務器相同的請求,這將是拒絕,因爲它是不是由已知的客戶簽署。我對此也很陌生,但這是一般概念。這個博客有基本步驟。