2012-04-06 328 views
0

我开发了一个移动应用程序,通过RESTful API连接到我的Web服务。如何使https请求和加密POST参数?

现在,我需要通过WireShark嗅探它的人来保护我的API。我只需要以某种方式隐藏我的URL和POST参数...我该怎么做?

我的风险在于,如果“有人”让我的API的地址和更改?每个请求可以作为另一个用户的USER_ID参数,并做坏事......

(我不使用OAuth 2.0)

回答

0

做到这一点,最简单的方法是使用HTTPS

客户端连接到服务器

客户端和服务器进行SSL握手 客户端发送加密类似

POST /resource/ HTTP1.1 

Name=Jonathan+Doe&Age=23&Formula=a+%2B+b+%3D%3D+13%25%21 
1

我有两个项目,这将有所帮助。

https://github.com/jas-/jQuery.AJAX提供了一个REST API的有用示例,其中包含用于序列化发布数据校验和以及CSRF令牌处理的选项。

该项目使用JS对表单数据进行非对称公钥加密。 https://github.com/jas-/jQuery.pidCrypt

请记住,浏览器中可用的随机数生成器存在已知限制,可能会导致弱加密,因此建议将连接包装在SSL连接中。

0

第一步是切换到HTTPS。这将加密您的POST参数。

你的第二步是修复你的协议来验证用户。始终可以对协议进行反向工程。如果唯一身份验证是user_id参数,那么您很脆弱。没有任何混淆会保护你。您的协议必须对未授权的应用程序的连接具有弹性