5月30日 21:29

什么是 CSRF 攻击?它需要满足哪些攻击条件?

CSRF 是跨站请求伪造,核心不是偷走用户信息,而是借用用户已经登录的身份去发请求。只要目标站点依赖 Cookie 判断登录态,浏览器又会在请求目标域名时自动带上 Cookie,攻击者就可能诱导用户打开恶意页面,让目标站误以为这次修改密码、转账、删除数据是用户本人操作。它通常需要:用户已登录、目标操作靠 Cookie 认证、接口缺少额外意图校验、攻击者能构造可触发请求。

追问

CSRF 为什么能利用 Cookie?

浏览器发送 Cookie 看的是请求目标域名,不看请求是不是用户主动点的。恶意站不能读取 Cookie,但能诱导浏览器带 Cookie 发请求。

哪些接口最容易被打中?

所有会改变状态的接口都要重点看,比如转账、改邮箱、改密码、删除数据、绑定账号。GET 接口如果偷偷做写操作也很危险。

CORS 拦住跨域响应还有 CSRF 风险吗?

有。CORS 主要限制攻击者读取响应,CSRF 很多时候只需要请求被执行,不需要看到结果。

实际项目怎么防?

常见组合是 CSRF Token + SameSite Cookie + Origin/Referer 校验。Token 证明页面来自本站,SameSite 降低自动带 Cookie 概率。

示例

html
<form action="https://bank.example/transfer" method="POST"> <input name="to" value="attacker"> </form> <script>document.forms[0].submit()</script>
标签:CSRF