2012-03-15 45 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