CSRF(跨站请求伪造)指攻击者诱导已登录用户访问恶意页面,该页面偷偷向目标站点发起请求,浏览器会自动携带用户的 Cookie,服务器误以为是用户本人的操作,从而完成转账、改密等敏感行为。它成立的前提是:请求凭证仅靠 Cookie 自动携带,且请求参数可被攻击者完全预测。
防御手段:
- CSRF Token:服务端下发一次性随机 Token,表单或请求头必须携带,攻击者无法获知;
- SameSite Cookie:设置
SameSite=Lax或Strict,跨站请求不携带 Cookie; - 校验 Origin/Referer:判断请求来源站点;
- 双重提交 Cookie:前端读 Cookie 值放入自定义头,服务端比对;
- 敏感操作要求二次验证(验证码、密码确认)。
与 XSS 的区别是常见追问:XSS 是利用用户对站点的信任在站内执行脚本,CSRF 是利用站点对用户浏览器的信任冒充请求,CSRF 不需要注入脚本。