客户端要求我为其iPhone应用程序执行后端服务器,并且只希望购买该应用程序的用户能够调用该服务器。 问题是他不想在应用程序中添加登录系统,所以在我看来,没有完全安全的方法来阻止没有他的应用程序的人调用服务器。 在任何情况下,即使不能完全阻止它,也足以在没有应用程序的情况下访问服务器。
实现这一目标的最佳方法是什么?同样,我不需要完全保护连接,没有敏感信息的传输,我只是想让那些想要在不付费应用程序的情况下利用服务器的人变得更复杂。
似乎最简单的想法是使用存储在客户端内并且服务器已知的密钥加密数据,以便可以解密消息,只反编译代码并找到密钥(当然不是密钥你可以列出一个密钥列表,每6/12/24小时更改一次。)
这可能是一个合理的解决方案吗?
答案 0 :(得分:0)
这永远不可能。欢迎使用客户端 - 服务器体系结构的本质。你永远不能相信客户。只需确保您正在公开的功能是安全的。
答案 1 :(得分:0)
如果它是一个付费应用程序,您可以免费释放该应用程序,所有功能锁定,直到用户进行应用内购买,然后您可以验证服务器上的收据,从而证明该设备是iOS设备?
答案 2 :(得分:0)
在客户端和服务器之间共享密钥似乎是一个很好的方法。但是,不要仅依赖于存储的密钥,而是尝试将它们与唯一标识符(例如UUID)组合,并使用组合密钥和UUID本身将其发送到服务器。
此时,用户UUID将是他的标识符(用户名),组合密钥将是他的令牌(密码)。这将是一个类似登录的机制。
答案 3 :(得分:0)
SSL连接不足以阻止其他人获取请求的URL?或者甚至更好地使用基本身份验证的SSL连接?