CSRF(跨站请求伪造)是一类利用用户已登录身份发起非本人意愿操作的 Web 安全攻击,了解其原理有助于正确使用令牌、SameSite Cookie 和请求来源校验进行防护。

| 类型 | Web 应用安全漏洞 |
| 英文全称 | Cross-Site Request Forgery |
| 常见缩写 | CSRF、XSRF |
| 主要影响 | 利用登录会话执行未授权操作 |
| 核心防护 | CSRF Token、SameSite Cookie、来源校验 |
CSRF(跨站请求伪造)是一种诱导已登录用户的浏览器向受信任网站发送非本人意愿请求,从而借用其身份执行操作的 Web 安全攻击。
用户登录网站后,浏览器通常会在后续请求中自动携带 Cookie 等身份凭据。攻击者可在恶意网页、邮件内容或第三方页面中放置隐藏表单、链接或特制资源请求,诱使浏览器向目标网站提交转账、修改资料、绑定账号等指令。
CSRF 利用的是网站对用户浏览器及其登录状态的信任。攻击者通常不需要知道用户密码,也往往无法读取目标网站的响应内容,但只要接口缺少有效验证,就可能让请求产生实际效果。它与 XSS 不同:XSS 主要是在受信任页面中执行恶意脚本,而 CSRF 侧重伪造来自用户浏览器的操作。
服务端应为状态变更请求加入不可预测且与会话绑定的 CSRF Token,并校验 Origin 或 Referer 请求来源。Cookie 可设置合适的 SameSite 属性,敏感操作还应要求重新认证或二次确认。接口设计上不应使用 GET 请求修改数据,也不能只依赖隐藏字段、固定参数或前端校验。需要注意,XSS 漏洞可能绕过多种 CSRF 防护,因此还应同时做好输入处理、输出编码与内容安全策略。
问:使用 HTTPS 能防止 CSRF 吗?答:不能。HTTPS 可保护传输过程,但无法判断请求是否出自用户真实意愿。
问:SameSite Cookie 足够安全吗?答:它能降低跨站携带 Cookie 的风险,但受业务场景、浏览器兼容性和配置影响,通常应与令牌及来源校验配合。
问:前后端分离项目也会受到影响吗?答:如果认证凭据会被浏览器自动附带,仍需防范;若令牌必须由应用代码主动加入请求头,风险模型会有所不同。

| 类型 | Web 应用安全漏洞 |
| 英文全称 | Cross-Site Request Forgery |
| 常见缩写 | CSRF、XSRF |
| 主要影响 | 利用登录会话执行未授权操作 |
| 核心防护 | CSRF Token、SameSite Cookie、来源校验 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧