使API仅可用于特定的web应用程序
让我们设想以下场景:调用API的web应用程序。 由于web应用程序代码可以在web浏览器中访问,我们可以说任何人都可以复制其代码并开始调用我们的API,而我们无法检测它是否来自我们的web应用程序使API仅可用于特定的web应用程序,api,security,web-applications,Api,Security,Web Applications,让我们设想以下场景:调用API的web应用程序。 由于web应用程序代码可以在web浏览器中访问,我们可以说任何人都可以复制其代码并开始调用我们的API,而我们无法检测它是否来自我们的web应用程序 如何防止它?非公共REST服务必须在每个API端点执行访问控制。单片应用程序中的Web服务通过用户身份验证、授权逻辑和会话管理来实现这一点。对于遵循RESTful风格组成多个微服务的现代体系结构来说,这有几个缺点 为了最小化延迟并减少服务之间的耦合,访问控制决策应该由REST端点在本地做出 用户身
如何防止它?非公共REST服务必须在每个API端点执行访问控制。单片应用程序中的Web服务通过用户身份验证、授权逻辑和会话管理来实现这一点。对于遵循RESTful风格组成多个微服务的现代体系结构来说,这有几个缺点
- 为了最小化延迟并减少服务之间的耦合,访问控制决策应该由REST端点在本地做出
- 用户身份验证应集中在颁发访问令牌的身份提供商(IdP)中
- 对受保护端点的每个请求都需要API密钥
- 如果请求传入太快,则返回429“太多请求”HTTP响应代码
- 如果客户端违反使用协议,请撤消API密钥
- 不要完全依赖API密钥来保护敏感、关键或高价值资源
我希望这会有所帮助。可以在客户端截获API密钥,以便攻击者可以轻松地重播消息。