2012-03-15 52 views
0

我有一個RESTful軌後端其中http請求(GET,PUT,POST等)有很多工作要做,控制器動作(指數,新,創建等)Rails的路線和Android手機HTTPGET和HttpPOST

我正在構建一個android應用程序,並且我構建了一個api_key控制器,通過移動應用程序向所有用戶分配api_key,每個請求都會發送此api_key以進行驗證。

從android到rails的每個請求都有params [:api_key]進行驗證,並且工作正常。

到目前爲止,我已經使用HttpPost和HttpGet,但我知道GET是不安全的,因爲它發送頭中的參數。當我發送HttpGet請求時,我不希望有人在頭中嗅探api_key。

那麼,是否可以簡單地使用HttpPost甚至在通常需要GET請求的控制器操作中?

感謝

回答

0

使用HTTP POST方法不會使數據更安全,如果有人截獲它,然後他們就可以檢索API密鑰是否連接到URL或形式。

如果您擔心安全問題,那麼您可能需要考慮使用HTTPS或某種安全身份驗證系統。

使用rails方法只是確定rails將請求路由到哪裏。只要請求在正確的操作中結束,在正確的控制器中,那麼rails將提供params哈希中的密鑰,無論它是作爲參數還是格式附加到URL。

+0

謝謝,湯姆!你回答了我的兩個問題。所以你說的是安全性,POST不比GET更安全? – railslearner 2012-03-15 00:29:11

+0

沒問題。不,POST不再安全。如果數據被攔截,api鍵仍然會以純文本形式存在。 HTTPS可能是解決此問題的最簡單方法,只需通過HTTPS將Android客戶端的所有請求與密鑰(無論是URL參數還是表單)進行匹配,這都是非常安全的。 – 2012-03-15 00:37:36