浏览器上的 OAuth 2.0 恶意拦截器
OAuth 2.0 malicious interceptor on browser
我正在通过 auth 2.0 协议 [1],以及证明密钥 RFC [2]。它很好地解释了该协议如何防止恶意应用程序监听网络流量。但是,我无法理解 auth 2.0 协议如何防止在浏览器本身上运行的恶意代码。
让我们以证明密钥RFC协议为例。我们生成了一个高熵代码验证器,但是我们必须将它存储在浏览器的某个地方(可能在 cookies/browser 的本地存储中)以便再次使用它来获取令牌。现在,万一有恶意代码在浏览器上执行,它总是可以访问 cookies/local 存储并获取代码验证器。
是否有增强协议(类似于 RFC-7636)来防止基于 cookie 的攻击?如果不是,我们如何缓解它?
OAuth 2.0 适合不同类型的客户端,即 Web 客户端、浏览器内客户端和本地移动应用程序客户端。
PCKE OAuth 2.0 机制主要是为本机移动应用程序设计的。它允许 public 客户端保护自己免受可能获取授权码的恶意应用程序和攻击者的侵害。
在处理 Web 客户端时,不需要 PCKE 机制,因为可以通过使用在服务器端存储客户端机密的机密客户端来防止这些攻击。
在处理浏览器内客户端时,会出现您提到的问题,但一般来说,当恶意代码 运行 在浏览器中时,所有希望都会破灭。
综上所述:PKCE并不是一种防御浏览器跨站脚本攻击的机制。
我正在通过 auth 2.0 协议 [1],以及证明密钥 RFC [2]。它很好地解释了该协议如何防止恶意应用程序监听网络流量。但是,我无法理解 auth 2.0 协议如何防止在浏览器本身上运行的恶意代码。
让我们以证明密钥RFC协议为例。我们生成了一个高熵代码验证器,但是我们必须将它存储在浏览器的某个地方(可能在 cookies/browser 的本地存储中)以便再次使用它来获取令牌。现在,万一有恶意代码在浏览器上执行,它总是可以访问 cookies/local 存储并获取代码验证器。
是否有增强协议(类似于 RFC-7636)来防止基于 cookie 的攻击?如果不是,我们如何缓解它?
OAuth 2.0 适合不同类型的客户端,即 Web 客户端、浏览器内客户端和本地移动应用程序客户端。
PCKE OAuth 2.0 机制主要是为本机移动应用程序设计的。它允许 public 客户端保护自己免受可能获取授权码的恶意应用程序和攻击者的侵害。
在处理 Web 客户端时,不需要 PCKE 机制,因为可以通过使用在服务器端存储客户端机密的机密客户端来防止这些攻击。
在处理浏览器内客户端时,会出现您提到的问题,但一般来说,当恶意代码 运行 在浏览器中时,所有希望都会破灭。
综上所述:PKCE并不是一种防御浏览器跨站脚本攻击的机制。