一句话定义:CSRF(Cross-Site Request Forgery,跨站请求伪造)是一种攻击——攻击者不破解密码,而是诱导你的浏览器(或替你上网的智能体)带着你已登录的 Cookie,向某个网站发出一笔你根本没打算做的请求。
为什么能成:Cookie 像是贴在浏览器身上的工牌。你登录过一次,之后访问该站点,浏览器会自动亮出工牌,服务器只认工牌、不细问动机。攻击者于是写一张"假条",让你或智能体走过去——工牌自动帮你把事办了。
举个具体场景:你在 system.example 后台保持登录,智能体浏览一个第三方页面,页面里藏着一行 <img src="https://system.example/delete?id=42">。浏览器或智能体为加载图片,自动向 system.example 发请求,并自动带上登录 Cookie。服务器看到合法会话,就执行了删除。攻击者通常看不到返回内容,属于"盲发",但删数据、改邮箱、转账这类状态变更,根本不需要看返回。
智能体为什么放大风险:智能体的"手"就是浏览器。你为省事保持登录,它继承你的登录态;它要打开大量页面、点击链接、执行多步任务,也比人更容易被藏在图片、隐藏表单、自动跳转里的请求触发。人可能还会犹豫,智能体读到链接就点了。
和相邻概念的区别:
| 概念 | 谁在发请求 | 攻击者能读响应吗 | 典型目标 |
|---|---|---|---|
| CSRF | 你的浏览器/智能体 | 通常不能 | 用你的身份改状态 |
| XSS(Cross-Site Scripting,跨站脚本) | 攻击者注入的脚本 | 能读页面 | 偷数据、冒充操作 |
| SSRF(Server-Side Request Forgery,服务端请求伪造) | 受害服务器 | 通常不能 | 探测或攻击内网 |
另外,CORS(Cross-Origin Resource Sharing,跨域资源共享)管的是"跨域能不能读响应",不是防 CSRF 的银弹。浏览器的同源策略默认允许"发请求"、限制"读响应",CSRF 利用的正是这个缝隙。
对从业者:敏感写操作别只靠 Cookie 鉴权。常见防护包括 CSRF token、校验 Origin/Referer、给 Cookie 设 SameSite、把写操作限定为 POST,并避免用 GET 改状态;接口可用 Authorization 头传递凭据,因为浏览器不会自动附加它。给智能体设计权限时,应使用独立、最小权限的会话,不要直接复用人类的高权限 Cookie,写操作要求人工确认。
对普通人:长期保持登录有代价;不明链接别点;重要操作前看清域名并二次确认。Cookie 策略随浏览器演进,具体行为以官方页面为准。
