什么是CSRF?
CSRF (Cross-site request forgery,跨站请求伪造),也被称为One Click Attack或者Session Riding,通常缩写为CSRF或者XSRF。它是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。
与XSS(跨站脚本)不同,XSS利用的是用户对指定网站的信任,而CSRF利用的是网站对用户网页浏览器的信任。
CSRF攻击原理
CSRF攻击的核心是利用用户在当前网站(如银行、邮箱、社交网络)的登录状态。浏览器会自动携带用户的Cookie等认证信息发送请求,而攻击者通过构造一个恶意链接或页面,诱骗已经登录的用户去点击或访问,从而让用户的浏览器在用户不知情的情况下向目标网站发送一个请求。
简单来说:攻击者通过技术手段欺骗用户的浏览器去访问用户自己曾经认证过的网站并执行操作(如发邮件、发消息、转账等)。
CSRF攻击流程
1、用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A
2、网站A产生Cookie信息并返回给浏览器,用户登录成功
3、用户在登录状态下访问攻击者页面B
4、攻击者页面B含有恶意代码(如隐藏表单、图片或脚本),向网站A发起请求
5、浏览器在接收到攻击代码后,自动携带网站A的Cookie信息向网站A发出请求
6、网站A收到请求,以为是用户C本人操作,于是执行相应操作
CSRF攻击分类
- GET型
这是CSRF攻击最常发生的情形
攻击者可以利用标签等发起请求,如:
本质上,这种设计本身就不合理,因为GET请求应该保证"幂等性",即重复请求不会产生不同效果
2. POST型
攻击者需要创建自动提交的表单
例如:
CSRF漏洞的危害
轻度危害
篡改用户数据:修改个人信息、昵称、签名、头像、密码等
社交网络操作:发布内容、点赞、关注/取消关注
电商网站操作:添加购物车、添加收货地址
中度危害
造成直接经济损失:网上银行转账、电商平台购买商品
隐私泄露:获取用户敏感信息
重度危害
完全接管账户:修改密码/邮箱,通过"找回密码"功能完全控制账户
管理员账户操作:添加新管理员、执行任意SQL语句、上传Webshell
CSRF漏洞的防御措施
- 使用CSRF Token
在用户会话中生成一个随机、不可预测的令牌
在渲染表单或发起敏感请求的页面时,将Token作为隐藏字段嵌入
服务器验证请求中的Token是否与用户Session中存储的Token一致 - SameSite Cookie
设置Cookie的SameSite属性:
SameSite=Strict:最严格,只在同站请求中携带Cookie
SameSite=Lax:在GET请求和顶级导航时允许携带Cookie - 验证Referer头
检查请求的Referer字段是否来自同一域名
例如,检查Referer是否位于网站A的域名下 - 使用验证码
在敏感操作时(如转账、修改密码)要求用户输入验证码
强制用户与应用进行交互,防止自动化攻击 - 限制Cookie使用
使用HTTPOnly标志设置Cookie,使JavaScript无法访问Cookie
重要注意事项
GET请求不应修改状态:更改状态的GET请求不安全,最佳实践是永不更改GET请求的状态。
基于Cookie的身份验证容易受CSRF攻击:因为浏览器会自动发送与域关联的所有Cookie。
令牌存储位置影响CSRF风险:
如果令牌存储在Cookie中,CSRF是一个令人担忧的问题
如果令牌存储在浏览器的本地存储中,不必担心CSRF漏洞
防御应多层结合:不要依赖单一防护措施,应结合使用SameSite Cookie和CSRF令牌。
总结
CSRF是一种利用用户已登录状态进行攻击的常见漏洞,攻击者可以以用户身份执行非授权操作。虽然浏览器自动携带Cookie是Web安全设计的一部分,但这也为CSRF攻击提供了机会。
防御CSRF的关键在于验证请求的合法来源,确保每个敏感操作都经过用户明确授权。最有效的防御方法是使用CSRF Token机制,同时配合SameSite Cookie属性设置,形成多层次的防护体系。
文章来自网上,侵权请联系博主
题外话
黑客/网络安全学习路线
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
网络安全学习资源分享:
下面给大家分享一份2025最新版的网络安全学习路线资料,帮助新人小白更系统、更快速的学习黑客技术!
一、2025最新网络安全学习路线
一个明确的学习路线可以帮助新人了解从哪里开始,按照什么顺序学习,以及需要掌握哪些知识点。
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
读者福利 |CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)
我们把学习路线分成L1到L4四个阶段,一步步带你从入门到进阶,从理论到实战。
L1级别:网络安全的基础入门
L1阶段:我们会去了解计算机网络的基础知识,以及网络安全在行业的应用和分析;学习理解安全基础的核心原理,关键技术,以及PHP编程基础;通过证书考试,可以获得NISP/CISP。可就业安全运维工程师、等保测评工程师。
L2级别:网络安全的技术进阶
L2阶段我们会去学习渗透测试:包括情报收集、弱口令与口令爆破以及各大类型漏洞,还有漏洞挖掘和安全检查项目,可参加CISP-PTE证书考试。
L3级别:网络安全的高阶提升
L3阶段:我们会去学习反序列漏洞、RCE漏洞,也会学习到内网渗透实战、靶场实战和技术提取技术,系统学习Python编程和实战。参加CISP-PTE考试。
L4级别:网络安全的项目实战
L4阶段:我们会更加深入进行实战训练,包括代码审计、应急响应、红蓝对抗以及SRC的挖掘技术。并学习CTF夺旗赛的要点和刷题
整个网络安全学习路线L1主要是对计算机网络安全的理论基础的一个学习掌握;而L3 L4更多的是通过项目实战来掌握核心技术,针对以上网安的学习路线我们也整理了对应的学习视频教程,和配套的学习资料。
二、技术文档和经典PDF书籍
书籍和学习文档资料是学习网络安全过程中必不可少的,我自己整理技术文档,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,(书籍含电子版PDF)

三、网络安全视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的网安视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。
四、网络安全护网行动/CTF比赛
学以致用,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

五、网络安全工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。

面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了技术之后,就需要开始准备面试,我们将提供精心整理的网安面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。
如果你是要找网安方面的工作,它们绝对能帮你大忙。
这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。
参考解析:深信服官网、奇安信官网、Freebuf、csdn等
内容特点:条理清晰,含图像化表示更加易懂。
内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…
**读者福利 |**CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)