首页 > 其他 > 详细

如何防御OAuth认证漏洞

时间:2021-06-23 22:09:41      阅读:21      评论:0      收藏:0      [点我收藏+]

如何防御OAuth认证漏洞

防御OAuth认证漏洞,OAuth服务提供者和client对用户输入的校验必不可少,特别是redirect_uri参数。在OAuth规范中几乎没有内置防护,因此,OAuth的安全只能取决于开发人员自己。

需要注意的是,漏洞可能同时出现在client和OAuth服务提供者。即使这一端的实现非常安全,但最终仍然依赖于另一端的应用也同样安全。

1. OAuth服务提供者

  • 要求client注册合法的redirect_uri白名单,尽可能使用严格的逐字节比对来验证任何传入请求中的URI。只允许完全和精确的匹配,而不是使用模式匹配。这可以防止攻击者访问白名单域上的其他页面。
  • 强制使用state参数。它的值还应该通过包含一些不可猜测的、用于会话的数据(比如包含会话cookie的hash)来绑定到用户的会话。帮助用户防御CSRF类似攻击。它还使攻击者更难使用和窃取授权码。
  • 在资源服务器上,确保将access token发送给发出请求的那个client_id。您还应该检查请求的scope,以确保它与最初授予token的scope相匹配。

2. client

  • 在实现OAuth之前,确保你完全理解了它的工作原理。许多漏洞都是由于对每个阶段到底发生了什么、以及如何被攻击者利用的,没有深入理解而造成的。
  • 即使没有强制要求也使用state参数。
  • 不仅要向/authorization端点发送redirect_uri参数,还要向/token端点发送。
  • 在开发移动或本机桌面OAuth客户端应用程序时,通常client_secret不可能不公开。在这种情况下,PKCE (RFC7638)机制可用于提供额外的保护,防止access token被截取或泄露。
  • 如果您使用OpenID Connect id_token,请确保根据JSON Web签名、JSON Web加密和OpenID规范正确验证它。
  • 在加载外部图像、脚本或CSS内容时,授权码可能会通过Referer头泄露。同样重要的是,不要将它们包含在动态生成的JavaScript文件中,因为它们可能通过

如何防御OAuth认证漏洞

原文:https://www.cnblogs.com/dandh811/p/14924283.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!