
1) 【一句话结论】CSRF(跨站请求伪造)是攻击者利用用户已登录的会话状态,通过伪造用户浏览器发送的HTTP请求,诱导目标网站执行非授权操作(如转账、点赞等),核心是利用浏览器自动提交Cookie等会话信息。
2) 【原理/概念讲解】当用户登录网站时,服务器会返回一个会话标识(如Cookie),后续所有请求都会自动携带这个Cookie。攻击者构造一个包含恶意请求的网页或链接(如隐藏表单),用户访问后,浏览器会自动将Cookie等会话信息附加到请求中,导致服务器误认为请求来自合法用户,执行操作。类比:就像你拿着银行卡(会话Cookie),点击一个伪造的转账链接,银行(目标网站)会自动处理转账,因为你的卡信息(Cookie)已经验证过。
3) 【对比与适用场景】
| 对比项 | CSRF(跨站请求伪造) | XSS(跨站脚本攻击) |
|---|---|---|
| 定义 | 攻击者伪造用户请求,诱导目标网站执行操作 | 攻击者注入恶意脚本,在用户浏览器执行 |
| 核心利用 | 会话状态(Cookie等) | 浏览器执行能力(DOM操作) |
| 攻击目标 | 服务器端操作(如转账、点赞) | 用户浏览器(显示恶意内容、窃取数据) |
| 使用场景 | 用户已登录的网站,需服务器验证操作 | 用户访问的任何网站,可注入脚本 |
| 注意点 | 需用户登录状态,请求自动提交 | 需用户访问页面,脚本执行 |
4) 【示例】假设用户登录后,网站有“点赞”按钮(URL:/api/like?id=123),攻击者构造一个表单:
<form action="/api/like?id=123" method="POST">
<input type="hidden" name="csrf_token" value="invalid_token">
<button type="submit">点击执行点赞</button>
</form>
用户点击后,浏览器自动发送POST请求,携带Cookie(包含会话ID),服务器验证后执行点赞。
5) 【面试口播版答案】
CSRF是跨站请求伪造,核心是利用用户已登录的会话,攻击者伪造请求诱导目标网站执行操作。原理是用户登录后,浏览器自动携带Cookie等会话信息,攻击者构造恶意请求(如表单),用户点击后,浏览器自动提交,导致服务器误认为合法请求。比如用户登录银行后,点击攻击者链接,银行自动转账。防御措施包括CSRF Token(每次请求验证Token)、SameSite Cookie属性(如Strict,禁止跨站提交)、验证码等。具体来说,服务器生成随机Token,客户端存入Cookie或隐藏表单字段,请求时服务器验证Token是否匹配且未过期;SameSite=Strict时,浏览器不会在跨站请求中发送Cookie。这些措施能有效防止CSRF攻击。
6) 【追问清单】
7) 【常见坑/雷区】