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

时间:2013-01-01 21:12:59

标签: ios web-services security authentication

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

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

然而,我对如何实施这一点感到有点怀疑。由于我的应用程序不需要身份验证,因此我不能仅使用这些凭据对服务进行身份验证。不知何故,我需要能够识别请求是来自可信客户端(即我的应用程序),这当然会导致人们认为可以使用证书。但是这个证书难道不能从应用程序中提取出来并因此被误用了吗?

目前我的应用程序基于iOS,但后来Android和WP也会出现。

我期望在nodejs中开发的Web服务,虽然这不是最终的决定 - 但它将是一个RESTful服务。

对最佳做法的任何建议表示赞赏!

1 个答案:

答案 0 :(得分:5)

简单回答:您无法阻止任何人从非移动客户端审核您的网站。但是,你可以更难。

易:

  • 发送非标准HTTP标头
  • 设置一些独特的查询参数
  • 发送一个有趣的(或巧妙的无趣的)用户代理字符串
  • (你可以想到更多)

难易度:

  • 实施质询/响应协议以识别您的客户
  • (Ab)使用HTTP作为您自己的加密内容的传输
  • (你可以想到更多)

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

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

相关问题