CSRF 与 SSRF 的关联与区别
区别
特性 | CSRF (跨站请求伪造) | SSRF (服务器端请求伪造) |
---|---|---|
攻击方向 | 客户端 → 目标网站 | 服务器 → 内部/外部资源 |
攻击目标 | 利用用户身份执行非预期操作 | 利用服务器访问内部资源或发起对外请求 |
受害者 | 已认证的用户 | 存在漏洞的服务器 |
利用条件 | 用户必须已登录目标网站 | 需要存在可控制的服务器端请求功能 |
常见场景 | 修改密码、转账等需要身份验证的操作 | 访问内部服务、元数据、文件读取、端口扫描等 |
防御方法 | CSRF Token、SameSite Cookie、验证Referer | 输入验证、白名单限制、禁用危险协议、网络隔离 |
关联
-
命名相似性:两者都是"请求伪造"类漏洞,名称结构相似(都是SRF结尾)
-
利用方式相似:
- 都利用系统对请求的信任(CSRF信任浏览器,SSRF信任服务器)
- 都可能导致非预期的操作被执行
-
组合攻击可能:
- 在某些场景下可组合使用(如通过CSRF触发SSRF漏洞)
- 都可用于扩大攻击面,突破安全边界
-
防御思路相似:
- 都需要验证请求的合法性
- 都需要限制请求的目标和范围
-
危害性:两者都可能造成严重的安全后果,但影响的层面不同(CSRF影响用户数据,SSRF影响服务器安全)
两者虽然攻击方向和目标不同,但都属于Web应用常见的安全漏洞,需要在开发过程中特别注意防范。