如何进行https请求并加密POST参数?

时间:2012-04-06 18:53:51

标签: ios api rest ios5 https

我开发了一个移动应用程序,通过RESTful API连接到我的Web服务。

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

我的风险是,如果“某人”获取我的API的Url并更改?每个请求的user_id参数可能会充当其他用户,并做坏事......

(我不使用Oauth 2.0)

3 个答案:

答案 0 :(得分:1)

我有两个有用的项目。

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

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

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

答案 1 :(得分:0)

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

您的第二步是修复协议以验证用户身份。始终可以对协议进行反向工程。如果唯一的身份验证是user_id参数,那么您就容易受到攻击。没有多少混淆会保护你。您的协议必须能够适应未经授权的应用程序的连接。

答案 2 :(得分:0)

实现此目的的最简单方法是使用HTTPS

客户端连接到服务器

客户端和服务器执行SSL握手 客户端发送加密的内容,如

POST /resource/ HTTP1.1 

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