跨站请求伪造(CSRF)是一种利用用户已登录身份、诱使浏览器向目标网站发送非本意请求的Web攻击方式,可能导致改密码、转账等操作被冒名执行,常用CSRF Token和SameSite Cookie防御。

| 类型 | Web 安全攻击方式 |
| 英文名 | Cross-Site Request Forgery |
| 常见缩写 | CSRF、XSRF |
| 别名 | One-click Attack、Session Riding |
| 攻击对象 | 已登录用户的 Web 会话 |
| 常见防御 | CSRF Token、SameSite Cookie、来源校验 |
跨站请求伪造(Cross-Site Request Forgery,缩写 CSRF 或 XSRF)是一种挟持用户在其已登录的 Web 应用上执行非本意操作的攻击方式,也被称为 One-click Attack 或 Session Riding。
当用户登录某个网站后,浏览器通常会保存该网站的会话凭证(如 Cookie),之后向该网站发送请求时会自动带上这些凭证。CSRF 正是钻了这个空子:攻击者在自己控制的网页、图片或链接中埋入一个指向目标网站的请求,用户一旦在登录状态下点开,浏览器就会带着真实的登录凭证把请求发出去,网站误以为这是用户本人的操作。
与跨站脚本攻击(XSS)容易混淆,但两者思路相反:XSS 利用的是用户对网站的信任,在页面中注入恶意脚本;而 CSRF 利用的是网站对用户浏览器的信任,冒用用户身份发请求。整个过程中攻击者不需要窃取密码,也看不到响应内容,只是「借」用户的身份完成操作。
问:CSRF 和 XSS 有什么区别?答:XSS 是把恶意脚本注入到目标网站页面中执行,利用用户对网站的信任;CSRF 是从第三方页面冒用用户身份向目标网站发请求,利用网站对浏览器的信任。两者可以结合使用,危害更大。
问:只用 POST 请求能防住 CSRF 吗?答:不能。攻击者可以在自己的页面里放一个自动提交的表单来发起 POST 请求,只改请求方法并不能阻止伪造,仍需配合 Token 或 SameSite 等机制。
问:普通用户如何降低风险?答:不随意点击来路不明的链接,用完重要网站及时退出登录,保持浏览器更新,现代浏览器默认的 SameSite 策略已能拦截相当一部分 CSRF 攻击。

| 类型 | Web 安全攻击方式 |
| 英文名 | Cross-Site Request Forgery |
| 常见缩写 | CSRF、XSRF |
| 别名 | One-click Attack、Session Riding |
| 攻击对象 | 已登录用户的 Web 会话 |
| 常见防御 | CSRF Token、SameSite Cookie、来源校验 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧