如何保护JSON API不被我的iOS客户端访问?

时间:2014-09-02 03:09:20

标签: ios ruby-on-rails api

我有一个使用Rails服务器HTTP API的iPhone应用程序。此时API是公开的 - 无需授权即可获取数据。

目前,任何人都可以访问API的URL并下载数据。

http://server.com/mydata

数据不是很敏感。但我仍然希望阻止人们轻易获得它。这样做的方法是什么?我不希望iOS应用用户登录。

我目前的解决方案

iPhone应用程序会在HTTP标头或请求查询中添加一个秘密令牌。数据通过HTTPS传播。

https://server.com/mydata?secret=my_secret

有更好的方法吗?

2 个答案:

答案 0 :(得分:2)

您可以尝试一种方法,其中客户端每个时间段仅允许X个请求(基于IP地址或用户名)

在您控制的设备上,HTTPS非常容易处于中间位置。你可以进行SSL证书验证,但总会有人有更多的时间,所以最好处理服务器端。

答案 1 :(得分:2)

Distribute and use your own SSL certificate

  

必须保护传输敏感客户数据(如信用卡和付款信息)的应用程序免受中间人攻击。 最佳保护是一种相互身份验证方案,其中交换证书以确保应用程序连接到受信任的服务器并确保服务器连接到受信任的应用程序。

然后只有个人(可能已经安装了您的应用程序)才能访问。如果有人挖掘代码并获得公共证书,那么他们可以冒充客户;但在那时他们无论如何都要赢,应该探索双因素认证。