PKCE:为什么要对代码验证器进行散列?

PKCE: Why bother to hash the code verifier?

根据我对 PKCE 的了解,恶意浏览器扩展程序有可能从浏览器历史记录中窃取授权代码,但不能窃取代码验证程序。如果这是真的,那么为什么还要对代码验证器进行散列来进行代码挑战?

您对代码验证程序进行哈希处理,使攻击者更难窃取它。如果他们设法以某种方式拦截授权请求中发送的代码质询,这仍然是不够的,因为您需要原始代码验证者将授权代码交换为访问令牌。这只是提高 PKCE 安全级别的另一种措施。

顺便说一句,散列代码验证程序不是必须的。规范中的一种“散列方法”是“普通的”,这意味着您不对验证者进行散列。虽然建议散列它,如果没有障碍的话。