【问题标题】:APIs and front-end development [closed]API 和前端开发 [关闭]
【发布时间】:2016-05-02 19:15:41
【问题描述】:

我们目前正在使用 API 和前端 JS 库来实现一个 Web 应用程序。目前从安全角度引起的一个问题:

在前端代码中公开这些 API 调用是否存在问题? 由于这将是一个公共网站,因此 API 调用的一个示例将是获取所有可用产品。网页是否可以通过 API 调用显示所有可用产品(无需用户登录),但不允许其他人在网站之外进行此调用(例如使用 fiddler 之类的工具)?

我想我正在寻找在可公开访问的网站前端使用 API 的架构模式和/或最佳实践。

非常感谢任何指导/链接

【问题讨论】:

  • 您无法控制在 HTTP 请求的另一端发生的情况。您必须在设计应用时考虑到这一点。
  • 这是一个非常广泛的问题,但您最接近的答案是:API必须提供所有安全性,您不能信任客户端。
  • 任何指导/链接 - 你不能要求链接;查找或推荐场外资源的请求不在主题范围内。
  • 客户端用于验证对站点的请求的任何安全令牌也应用于验证对 API 的请求。 API 与网站的其他部分没有什么不同,它只是用 JSON 而不是 HTML 响应。
  • @David - 大多数信息将提供给匿名用户,因此大多数人不需要身份验证

标签: javascript api security design-patterns architecture


【解决方案1】:

api 本身可以使用各种方法限制 http 请求的来源。根据您使用的语言/平台,您可以完全控制谁/什么可以实际向您的 API 执行 http 请求。

大多数人只会将 CORS 用作极其基本的解决方案。如果未由 API 本身列入白名单,CORS 将阻止未经授权的 HTTP 请求进入。

【讨论】:

  • 使用 aspnet web api 2。我们目前确实启用了 Cors。
  • 如果 Cors 非常基础,有什么更高级的解决方案可以防止从其他来源/域调用这些 api 的建议吗?
  • 我会将其标记为答案,因为它确实准确地回答了问题,可能无法亲自解决我的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-13
  • 2012-09-10
  • 1970-01-01
  • 1970-01-01
  • 2015-04-19
  • 1970-01-01
  • 2023-04-07
相关资源
最近更新 更多