如何保护JSON API不被除我的iOS客户端之外的任何人访问



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

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

http://server.com/mydata

数据不是很敏感。但我仍然想防止人们轻易感染。有什么方法可以做到这一点?我也不希望iOS应用程序用户登录。

我现有的解决方案

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

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

有更好的方法吗?

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

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

分发并使用您自己的SSL证书。

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

然后只有个人(可能已经安装了您的应用程序)才能访问。如果有人挖掘代码并获得公共证书,那么他们就可以模拟客户端;但在这一点上,他们无论如何都会获胜,应该探索双因素身份验证。

最新更新