Gai*_*arx 11 iphone web-services
我正在与Web服务一起开发iPhone应用程序.iPhone应用程序将使用GET或POST从Web服务中检索数据,例如http://www.myserver.com/api/top10songs.json,以获取前十首歌曲的数据.
iPhone应用程序没有用户帐户和密码.确保只有我的iPhone应用程序可以访问Web API http://www.myserver.com/api/top10songs.json的最佳做法是什么?iPhone SDK的UIDevice uniqueueIdentifier是不够的,因为任何人都可以伪造设备ID作为使用wget,curl或web浏览器进行API调用的参数.
Web服务API将不会发布.Web服务的数据不是秘密和私有的,我只是想防止滥用,因为还有API将一些数据写入服务器,如使用日志.
你能做的就是得到一个秘密密钥,只有你知道,包括在一个md5散列签名中,通常你可以构造签名,如你的参数和值和最后附加的秘密,然后采取md5哈希那...在您的客户端和服务端都这样做并匹配签名字符串,只有当签名匹配时才会被授予访问权限......因为秘密只出现在签名中,所以很难进行逆向工程和破解..
以下是丹尼尔建议的扩展.
有一些服务器和客户端知道的共享秘密.说一些长的随机字符串.
然后,当客户端连接时,让客户端生成另一个随机字符串,将其附加到共享字符串的末尾,然后计算MD5哈希值.
将随机生成的字符串和哈希作为参数发送到请求中.服务器知道秘密字符串,因此它可以生成自己的哈希值,并确保它与从客户端收到的哈希值匹配.
这不是完全安全的,因为有人可以反编译您的应用程序以确定秘密字符串,但它可能是您在没有大量额外工作的情况下获得的最佳选择.
| 归档时间: | 
 | 
| 查看次数: | 3525 次 | 
| 最近记录: |