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>