news 2026/7/1 19:03:14

CSRF(Cross-site Request Forgery)跨站请求伪造攻击(浏览器自动携带同源Cookie机制)与XSS攻击区别、现代网站安全模板、sameSite、Referer校验

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CSRF(Cross-site Request Forgery)跨站请求伪造攻击(浏览器自动携带同源Cookie机制)与XSS攻击区别、现代网站安全模板、sameSite、Referer校验

文章目录

  • 深入理解CSRF:原理、攻击与防御实战指南
    • 一、一个真实场景:你点开的“猫咪视频”,正在转走你的存款
    • 二、CSRF本质:身份可信 ≠ 操作可信
    • 三、防御三板斧:纵深防御才是王道
      • ✅ 方案1:SameSite Cookie 属性(现代首选)(安全模板)
      • ✅ 方案2:CSRF Token(行业黄金标准)
      • ✅ 方案3:辅助验证(增强层)
    • 四、常见误区澄清
    • 五、最佳实践清单
    • 六、结语:安全是链条,而非单点

深入理解CSRF:原理、攻击与防御实战指南

你的“已登录身份”,可能正在被悄悄滥用。本文带你彻底搞懂CSRF攻击的本质与防御之道。

一、一个真实场景:你点开的“猫咪视频”,正在转走你的存款

小明登录了银行网站,办理完业务后未退出。
随后他点开朋友发的“超萌猫咪视频”链接(实为钓鱼页面)。
页面中隐藏了一段代码:

<imgsrc="https://your-bank.com/transfer?to=attacker&amount=5000"width="0"height="0">

结果:浏览器自动携带小明的银行Cookie发起转账请求——钱没了,而小明毫无察觉。

这就是典型的CSRF(Cross-site Request Forgery)跨站请求伪造攻击


二、CSRF本质:身份可信 ≠ 操作可信

  • 核心原理:利用浏览器“自动携带同源Cookie”的机制,诱导用户在已认证的网站上执行非本意操作。
  • 关键特征
    • 攻击者无法窃取Cookie内容(与XSS本质区别)
    • 但能触发浏览器自动发送Cookie
    • 用户全程无感知(“被操作”)
  • 必要条件
    1. 目标网站存在敏感操作接口(如转账、改密)
    2. 该接口仅依赖Cookie/session验证身份
    3. 用户已登录且未退出
    4. 用户访问了恶意页面

💡CSRF vs XSS
XSS是“盗取你的钥匙开门”,CSRF是“骗你亲手开门”。前者窃取凭证,后者滥用凭证。


三、防御三板斧:纵深防御才是王道

✅ 方案1:SameSite Cookie 属性(现代首选)(安全模板)

res.cookie('auth_token',token,{httpOnly:true,// 阻断XSS窃取(防XSS)secure:true,// 仅HTTPS传输(防中间人)sameSite:'Strict',// 严格模式:跨站不发Cookie// sameSite: 'Lax' // 宽松模式:允许安全GET跳转(如链接),推荐多数场景maxAge:7*24*60*60*1000,path:'/'});
  • Strict:最安全,但用户从外部链接跳转会丢失登录态(体验差)
  • Lax(推荐):允许<a href>等安全GET跳转,阻止POST/iframe等危险请求
  • ⚠️ 注意:旧版浏览器(如IE)不支持,需配合其他方案

✅ 方案2:CSRF Token(行业黄金标准)

  1. 服务端生成随机Token,存入Session
  2. 前端在表单/请求头中携带该Token
  3. 服务端校验Token一致性
// 前端(Axios示例)axios.post('/transfer',data,{headers:{'X-CSRF-Token':getCsrfToken()}// 从meta或cookie读取});// 后端(Express示例)app.post('/transfer',csrfProtection,(req,res)=>{...});// 使用csurf中间件自动验证
  • 优势:彻底打破“自动携带”链条,兼容性极佳
  • 关键:Token需绑定用户Session,且不可预测

✅ 方案3:辅助验证(增强层)

  • Referer/Origin校验:检查请求来源是否可信(注意隐私策略可能屏蔽Referer)
  • 二次验证:敏感操作要求输入密码/短信验证码(用户体验成本高)
  • 自定义请求头:如X-Requested-With: XMLHttpRequest(仅对AJAX有效)

四、常见误区澄清

误区正解
“设置了httpOnly就能防CSRF”❌ httpOnly防XSS,CSRF恰恰依赖浏览器自动发Cookie
“API用JWT就安全”⚠️ 若JWT存Cookie仍需SameSite;若存LocalStorage+Authorization头,天然免疫CSRF(但需防XSS)
“SameSite=Strict万能”❌ 旧浏览器不支持,且Strict模式影响正常跳转体验
“GET请求无害”❌ 若业务用GET做删除/转账,SameSite=Lax也无法防护

五、最佳实践清单

  1. Cookie必设SameSite=Lax+Secure+HttpOnly
  2. 敏感操作必加:CSRF Token(表单隐藏域 / 请求头)
  3. 关键操作二次验证:大额转账、改密等
  4. 定期审计:检查所有写操作接口是否验证来源
  5. 教育用户:重要网站操作后及时退出

六、结语:安全是链条,而非单点

CSRF攻击利用的是“信任链”的断裂——我们信任用户浏览器,却未验证操作意图。
真正的安全 = 技术防御(SameSite+Token) + 架构设计(无状态API) + 安全意识

🌐延伸思考
随着SPA和Token-Based认证普及,CSRF风险在降低,但传统Cookie Session架构仍广泛存在。理解CSRF,不仅是防御攻击,更是培养“最小信任原则”的安全思维。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/29 16:23:50

价值投资者如何看待并购和分拆

价值投资者如何看待并购和分拆 关键词:价值投资、并购、分拆、企业估值、资本配置、股东价值、投资策略 摘要:本文深入探讨价值投资者如何分析和评估企业并购与分拆活动。我们将从价值投资的基本原则出发,详细解析并购和分拆对企业内在价值的影响机制,提供系统的分析框架和…

作者头像 李华
网站建设 2026/6/29 7:23:25

蜗轮梯形丝杆升降机的有哪些优势与弊端

蜗轮梯形丝杆升降机是蜗轮蜗杆减速机构 梯形丝杆副的经典组合&#xff0c;也是丝杆升降机中应用最广泛的机型之一&#xff0c;其优势集中在安全自锁、成本低廉、结构耐造等方面&#xff0c;弊端则源于双重滑动摩擦带来的效率、温升、速度限制&#xff0c;整体适配中小负载、低…

作者头像 李华
网站建设 2026/6/26 12:54:28

【GitHub项目推荐--Nanobot:超轻量级个人AI助手】

简介 Nanobot​ 是一个由HKUDS团队开发的开源超轻量级个人AI助手项目&#xff0c;灵感来源于Clawdbot但代码量大幅精简。该项目采用Python编写&#xff0c;核心代码仅约4,000行&#xff0c;相比Clawdbot的430,000行代码减少了99%。Nanobot专注于提供核心AI助手功能&#xff0c…

作者头像 李华
网站建设 2026/7/1 14:27:18

为什么只有镜像视界,能让普通视频具备三维空间判断能力

为什么只有镜像视界&#xff0c;能让普通视频具备三维空间判断能力这是一个技术层级很高、但必须说清楚的问题。答案不在于“算法更强”&#xff0c;而在于是否从一开始就站在“空间事实”的角度构建整套体系。绝大多数厂商是在二维视频之上“叠加三维效果”&#xff0c;而镜像…

作者头像 李华
网站建设 2026/6/26 1:19:08

空间视频驱动的防护作业区人员三维重构与态势感知系统——以 Pixel-to-3D 空间映射为核心的人员真实存在性判断与安全态势感知技术体系

空间视频驱动的防护作业区人员三维重构与态势感知系统——以 Pixel-to-3D 空间映射为核心的人员真实存在性判断与安全态势感知技术体系技术提供方&#xff1a;镜像视界&#xff08;浙江&#xff09;科技有限公司 适用场景&#xff1a;防护作业区&#xff5c;危化生产现场&#…

作者头像 李华
网站建设 2026/6/28 23:59:45

当9.9元体验课变成万元陷阱:测试工程师的认知税惨痛实录

"学完自动化测试课程薪资翻倍&#xff01;"——某机构广告承诺与学员实际就业率反差超60% 一、测试行业三大收割套路&#xff1a;你的焦虑正在被精准定价 低价钩子高价沉没 9.9元Selenium速成课引流&#xff0c;两周后推送"限时优惠"的万元全栈课。某学员…

作者头像 李华