07 CSRF 的原理是什么?和 XSS 有什么区别?怎么防御?
2026/9/17...大约 2 分钟
07|CSRF 的原理是什么?和 XSS 有什么区别?怎么防御?
开场原理用场景讲:用户登录着银行网站,此时访问了恶意页面——页面里藏着一个自动向银行转账接口发请求的元素,浏览器发请求时自动带上银行的 cookie,银行以为是用户本人操作就执行了。
回答思路
第一步:原理的核心
CSRF 是「借用户的身份发请求」——攻击者自始至终拿不到 cookie。
第二步:和 XSS 的区别(本题题眼)
| 维度 | XSS | CSRF |
|---|---|---|
| 攻击代码位置 | 注入脚本在目标网站内执行 | 攻击代码在别的域,只蹭 cookie 的自动携带 |
| 能力 | 能读能写页面 | 只能发请求,看不到响应 |
一句对比句:「XSS 是你家里进了贼,CSRF 是骗子借你的手办了事」——形象又准确。
第三步:防御手段讲主流组合
- Token 校验:服务端发随机 token,请求必须带上——第三方页面拿不到 token
- SameSite cookie:限制 cookie 跨站携带(现代浏览器默认 Lax 已挡掉大半)
- Referer 校验:辅助手段,可被伪造
- 关键操作二次验证:密码、验证码
组合拳讲出来,而不是单点。
第四步:讲测试方法
抓包拿到请求后,在本地构造一个无 token 的裸页面重放看服务端是否拒绝;删掉或改错 token 重放看是否拦截;检查 cookie 的 SameSite 属性——验证的是防御链而不是「能不能攻击成功」。
收尾:讲现实认知
现代浏览器 SameSite 默认化后经典 CSRF 少了,但历史系统和小程序 WebView 场景仍有存量风险——别宣布它死了。
考察重点
| 维度 | 说明 |
|---|---|
| 企业动机 | CSRF 与 XSS 的区别是必考辨析题——混着答的人说明漏洞原理没吃透,后续漏洞评估能力存疑 |
| 过线标准 | 原理场景化讲清 + 和 XSS 的身份窃取对比 |
| 区分度 | SameSite 讲得出、Token 为什么防得住的机理讲得清的是真懂;只会「加 token」的是背结论 |
| 加分项 | 借手的比喻、SameSite 默认化后的现实存量风险认知 |
| 减分项 | 把 CSRF 说成「注入的一种」,两概念混为一谈直接露底 |
来源
整理自知识星球帖《面试情报 05|安全测试 20 题》,返回题库。