使API仅适用于特定的Web应用程序

时间:2018-02-05 10:27:45

标签: api security web-applications

让我们想象下面的场景:调用API的web-app。 由于可以在网络浏览器中访问网络应用程序代码,我们可以说任何人都可以复制其代码并开始调用我们的API,我们无法检测它是否来自我们的网络应用程序。 / p>

我该如何预防?

1 个答案:

答案 0 :(得分:1)

非公共REST服务必须在每个API端点执行访问控制。单片应用程序中的Web服务通过用户身份验证,授权逻辑和会话管理来实现。对于遵循RESTful风格构成多个微服务的现代架构,这有几个缺点。

  • 为了最大程度地减少延迟并减少服务之间的耦合,REST端点应在本地采取访问控制决策
  • 用户身份验证应集中在身份提供商(IdP)中,该身份提供商会发出访问权限

您也可以使用API​​密钥。 API密钥可以减少拒绝服务攻击的影响。但是,当它们发给第三方客户时,它们相对容易妥协(如果您不打算这样做,那么关键劫持应该没有任何问题。)

  • 对受保护端点的每个请求都需要API密钥。
  • 如果请求过快,则返回429“Too Many Requests”HTTP响应代码。
  • 如果客户违反使用协议,则撤销API密钥。
  • 不要完全依赖API密钥来保护敏感,关键或高价值资源。

您可以在OWASP's official article上阅读更多优秀的安全措施。

我希望这会有所帮助。