【发布时间】: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