繁体   English   中英

限制对Web服务的访问,仅允许移动客户端

[英]Restrict access to web service to only allow mobile clients

我目前正在构建一个移动应用程序(首先是iOS),它需要后端Web服务进行通信。

由于此服务将公开我只想由移动客户端访问的数据,因此我想限制对该服务的访问。

但是,对于应如何实施,我有点怀疑。 由于我的应用程序不需要身份验证,因此我不能仅使用这些凭据对服务进行身份验证。 我必须以某种方式能够确定请求是否来自受信任的客户端(即我的应用程序),这当然导致人们认为可以只使用证书。 但是难道不能只是从应用程序中提取此证书并因此而滥用它吗?

目前,我的应用基于iOS,但以后也会在android和WP上使用。

我期望在nodejs中开发Web服务,尽管这不是最终决定-但是它将是RESTful服务。

任何关于最佳实践的建议都将受到赞赏!

简单的答案:您不能阻止任何人从非移动客户端访问您的网站。 但是,您可以使其更难。

简单:

  • 发送非标准的HTTP标头
  • 设置一些唯一的查询参数
  • 发送一个有趣的(或微不足道的)用户代理字符串
  • (您可能还会想到更多)

难:

  • 实施挑战/响应协议以识别您的客户
  • (ab)使用HTTP作为您自己的加密内容的传输
  • (您可能还会想到更多)

当然,任何人都可以提取数据,反编译您的代码,重播您的HTTP请求等等。 但是在某些时候,能够免费访问Web应用程序并不值得对应用程序进行逆向工程。

但是,这里还有一个更基本的问题。 与其他客户端访问您的网站会有什么危害? 你还没说 没有这些信息,基本上不可能推荐合适的解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM