【问题标题】:client-server REST APIs security客户端-服务器 REST API 安全性
【发布时间】:2016-06-14 15:34:06
【问题描述】:

我有一个 cordova 客户端应用程序,我想将我的 REST API 的访问权限限制为仅移动 Cordova 客户端,以防止浏览器和其他不允许的设备访问我的 API。

对于客户端,我应该在javascript 中做一些事情(应用程序使用cordova 运行),但我不能只在我的代码中设置一个静态令牌并对服务器进行$.ajax() 调用,因为用户可以复制那个令牌,所以我需要一种方法来保护令牌和$.ajax() 调用。

我应该如何进行?

谢谢

【问题讨论】:

  • 如果移动客户端用户必须进行身份验证,那么您可以为每个用户分配一个公钥和私钥,并为 REST API 调用使用 HMAC 签名。
  • @bassxzero,应用中不需要认证。

标签: javascript php ajax cordova slim


【解决方案1】:

您可以将服务器设置为仅回复某些用户代理。它可以是默认的 Cordova WebKit 用户代理,或者您可以在 config.xml 中为您的应用程序设置自定义的用户代理。在Cordova documentation 中查看OverrideUserAgent

【讨论】:

  • 是的,有一定知识的桌面用户可以找到您的用户代理并手动更改它。您可以像 Zappescu 所说的那样将其与 device.platform 结合使用,这样就更难获得访问权限,但如果限制对后端的访问如此重要,您应该考虑包括身份验证。
【解决方案2】:

我建议你使用设备plugin来获取设备的平台。我将它用于我的内部使用统计信息,它会在用户打开应用程序的运行时为您提供诸如“Android”、“iOS”等字符串。 与您的服务器共享字符串,您可以得到您想要的。

【讨论】:

  • 谢谢,但我认为有人可以复制ajax 请求并将Android 作为参数传递,并可以访问服务器。
猜你喜欢
  • 2012-03-31
  • 1970-01-01
  • 1970-01-01
  • 2019-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-20
  • 1970-01-01
相关资源
最近更新 更多