【问题标题】:Restrict REST API access限制 REST API 访问
【发布时间】:2015-04-23 21:04:24
【问题描述】:

我有一个面向公众的 API,它在内部使用 Google Maps API 服务返回一些数据。该 API 目前主要用于内部目的,通过 Web 应用程序调用。 但是,我希望限制此 API 的使用,即它只能在用户(未注册)浏览它时从我的 Web 应用程序(或移动应用程序)调用。不应授权直接向此 API 发出的 http 请求。

我不能使用 API 密钥,因为 webapp 流程也应该适用于非注册用户。

【问题讨论】:

  • 是您没有另一个服务器层的问题吗?企业系统通常在公共 API 和内部服务之间有防火墙。但是,如果你很聪明,你可以例如在不同的端口上运行您的内部 API,并在您的防火墙/ACL 上阻止对该端口的公共访问。

标签: web-services api rest web-applications web


【解决方案1】:

如果您不使用 HTTPS,那么任何安全机制都是有缺陷的,因为它可以被复制。恕我直言,您可以添加一个 HTTP 标头(例如“Request-source: YourApp”)并检查它在您的 API 中是否存在。

当然,一旦以某种方式记录下来,任何人都可以模仿这个标题。但是,如果您使用 HTTPS 并创建其他人不知道的标头,则可以防止这种情况发生。

【讨论】:

  • 在这样的用例中使用 https 对我来说似乎有点矫枉过正。使用标头是个好主意,但我相信在未来一段时间内我不会诉诸 SSL
  • 只要没有人窥探你的网络通信,你就不需要HTTPS。
猜你喜欢
  • 2012-02-26
  • 2015-11-12
  • 2017-10-10
  • 2019-06-07
  • 1970-01-01
  • 1970-01-01
  • 2019-01-04
  • 2020-05-11
  • 1970-01-01
相关资源
最近更新 更多