我正在为它们构建一套移动应用程序和一个随附的 Web 服务。为了保护从应用程序到 Web 服务的连接(达到合理水平),我使用了 2-legged OAuth 方法,每个应用程序都使用唯一的消费者密钥/秘密。
我的问题是如何验证移动应用收到的响应实际上来自我的服务器。例如,如果我有一个端点来确认用户是否可以通过传入一组布尔值来访问某些功能,据我所知,没有什么可以阻止某人修改他们的主机文件并发回一个欺骗性的响应,表明他们可以访问一切。它是否正确?
我提出的解决方案是让应用程序存储服务器也知道的响应秘密。当服务器发送它的响应时,它会生成数据的哈希值和秘密。然后应用程序重新生成哈希并检查它是否匹配。这样,用户只有在知道应用程序中存储的秘密时才能劫持请求。
是否有解决此问题的最佳实践?
简单地在 HTTPS 下托管 Web 服务会解决问题,还是有人仍然能够复制 Web 服务并发回欺骗性响应?
非常感谢