You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

采用PKCE的授权码流程:原生/SPA的AccessToken响应是否会被窃取?

PKCE流程中Access Token的捕获风险解析

原生应用场景

带PKCE的授权码流程核心是防止授权码被拦截冒用——只有持有初始生成的code_verifier的客户端,才能用授权码兑换access token。但关于access token的响应是否会被恶意应用捕获,要分情况看:

  • 如果token的传输采用HTTPS,网络层面的窃听是不可能的,恶意应用无法通过抓明文包获取token。
  • 但如果设备处于越狱/root状态,恶意应用拥有系统级权限,它可以通过hook系统网络调用、读取目标应用内存等方式获取到token。这种本地权限滥用的场景,PKCE无法防护,因为PKCE的设计目标不包含抵御本地高权限攻击,这类风险需要依赖系统安全机制和应用自身的安全存储策略(比如用系统提供的密钥链存储token)来缓解。

单页Web应用(SPA)场景

SPA实现PKCE后,浏览器扩展确实有可能捕获到包含access token的响应,原因如下:

  • SPA兑换token的请求是在浏览器端发起的(通常是fetch/XHR请求),如果某个浏览器扩展拥有目标授权服务器API域名的主机权限,它就能通过监听浏览器的网络请求,直接获取到响应中的access token。
  • PKCE同样只解决授权码被拦截冒用的问题,无法解决SPA前端token的存储与泄露风险。SPA的token通常存于内存或localStorage中,除了有权限的浏览器扩展,XSS攻击也能窃取到token。这类风险需要通过其他手段补充防护,比如采用后端托管的token模式(将token存在HttpOnly Cookie中)、严格控制浏览器扩展权限、启用Content Security Policy(CSP)等。

内容的提问来源于stack exchange,提问作者thedreamsaver

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 18:32:12