我正在为iOS应用设计REST服务。我想知道如何使RESt服务安全,以便只允许从iOS应用程序发出请求?
我正在考虑使用共享密钥,但如果您检查请求,仍会遇到问题。
另一种方法是使用不是所需解决方案的OAuth。我希望能够在实际请求中进行身份验证,而不是在多个请求之间交换令牌。
我能想到的唯一解决方案是基于时间的加密。共享密钥是基于时间加密的,在服务器上请求仅在特定持续时间内有效。
答案 0 :(得分:3)
如果您通过受SSL保护的协议(如使用服务器证书防范中间人攻击)传输嗅探器,则您的请求将不会被嗅探器看到,因此共享密钥会被烧录到应用可以工作。
当然,如果有人真的想要,他们可以对您的应用进行逆向工程,以找到存储在其中的秘密。如果您正在构建连接到人们银行账户的东西,那么请不要打扰。如果您只是想添加一小层保护来防止琐碎的黑客攻击或DDOS服务,那么这听起来是一种合理的方法。
答案 1 :(得分:0)
虽然这确实可以解决,但最好的办法是使用某种登录机制,但这并不能阻止有人试图通过身份验证欺骗应用程序。
你不能相信客户,但如果你使用像OAuth这样的东西,你至少可以阻止人们尝试。如果应用使用应用内购买,您可以将帐户验证为具有访问权限,然后按照该路由进行操作。然而,除此之外,没有任何“完美”的解决方案,可以这么说。