0

我正在通过 auth 2.0 协议 [1] 以及证明密钥 RFC [2]。它很好地解释了该协议如何防止恶意应用程序监听网络流量。但是,我无法理解 auth 2.0 协议如何防止在浏览器本身上运行的恶意代码。

让我们以证明密钥 RFC 协议为例。我们生成了一个高熵代码验证器,但我们必须将它存储在浏览器的某个位置(可能在 cookie/浏览器的本地存储中),以便再次使用它来获取令牌。现在,如果浏览器上执行恶意代码,它可以随时访问cookies/本地存储并获取代码验证器。

是否有防止基于 cookie 的攻击的协议增强(类似于 RFC-7636)?如果不是,我们如何减轻它?

[1] https://www.rfc-editor.org/rfc/rfc6749

[2] https://www.rfc-editor.org/rfc/rfc7636

4

1 回答 1

1

OAuth 2.0 适用于不同类型的客户端,即 Web 客户端、浏览器内客户端和本地移动应用程序客户端。

PCKE OAuth 2.0 机制主要是为原生移动应用程序设计的。它允许公共客户端保护自己免受可能获取授权码的恶意应用程序和攻击者的侵害。

在处理 Web 客户端时,不需要 PCKE 机制,因为可以通过使用机密客户端来防止这些攻击,客户端机密存储在服务器端。

在处理浏览器内客户端时,会出现您提到的问题,但一般来说,当恶意代码在浏览器中运行时,所有希望都会消失。

综上所述:PKCE 不是一种防御浏览器中跨站点脚本攻击的机制。

于 2017-04-07T07:25:51.380 回答