我目前正在构建一个移动应用程序(首先是 iOS),它需要后端 Web 服务进行通信。
由于此服务将公开我只想由移动客户端访问的数据,因此我想限制对该服务的访问。
然而,我对如何实施这一点有点怀疑。由于我的应用程序不需要身份验证,因此我不能仅使用这些凭据对服务进行身份验证。不知何故,我需要能够识别请求是否来自受信任的客户端(即我的应用程序),这当然会导致人们认为可以只使用证书。但是这个证书难道不能从应用程序中提取并因此被滥用吗?
目前我的应用程序是基于 iOS 的,但稍后 Android 和 WP 也会随之而来。
我希望在 Nodejs 中开发 Web 服务,尽管这不是最终决定 - 但它将是一个 RESTful 服务。
任何有关最佳实践的建议都将受到赞赏!
简单的答案:您无法阻止任何人从非移动客户端访问您的网站。然而,你可以让它变得更难。
Easy:
- 发送非标准 HTTP 标头
- 设置一些唯一的查询参数
- 发送一个有趣的(或稍微不有趣的)用户代理字符串
- (你可能还能想到更多)
难的:
- 实施质询/响应协议来识别您的客户
- (Ab)使用 HTTP 作为您自己的加密内容的传输
- (你可能还能想到更多)
当然,任何人都可以提取数据、反编译代码、重放 HTTP 请求等等。但在某些时候,能够访问免费的 Web 应用程序并不值得对应用程序进行逆向工程所需的努力。
然而,这里有一个更基本的问题。通过其他客户端访问您的网站会有什么危害?你还没说;如果没有这些信息,基本上不可能推荐合适的解决方案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)