烟消火灭网

把三个长得像双胞胎的漏洞放一块儿比,最容易记混。但它们的本质区别其实一句话就能说清:XSS是“借刀杀人”,CSRF是“偷梁换柱”,SSRF是“狐假虎威”。 XSS跨站脚本)玩的是“信任用户输入”。攻击

xss csrf ssrf区别

把三个长得像双胞胎的漏洞放一块儿比,最容易记混。但它们的本质区别其实一句话就能说清:XSS是“借刀杀人”,CSRF是“偷梁换柱”,SSRF是“狐假虎威”。

XSS(跨站脚本)玩的是“信任用户输入”。攻击者把一段恶意脚本塞进评论区,服务器没过滤就存下来。别的用户打开页面,脚本在人家浏览器里执行——这等于攻击者借了受害者的手,去偷Cookie、改密码、发私信。我见过最狠的一次,某个论坛被植入XSS后,管理员点了个帖子,后台权限直接被偷走。XSS的受害者是浏览器用户,攻击目标是用户的数据和身份。

CSRF(跨站请求伪造)则是“骗服务器认错人”。它不碰你的浏览器数据,而是利用服务器对Cookie的盲目信任。你登录了银行网站,没退出。这时你点开攻击者发来的钓鱼链接,里面藏着一个向银行转账的请求——浏览器自动带上你的Cookie,服务器一看“哟,这哥们儿登录过”,就执行了转账。整个过程你毫不知情。CSRF的关键是服务器无法区分请求是用户主动发的,还是被恶意页面诱导发的。我朋友的公司就栽过跟头:内部系统没做CSRF防护,员工浏览了带恶意图片的网页,结果自动提交了“修改工资卡号”的请求。

SSRF(服务端请求伪造)性质完全不同——它攻击的是服务器自己。XSS和CSRF都发生在浏览器端,SSRF却发生在后端代码里。很多应用会从URL参数拉取图片或网页,比如“?url=http://example.com/avatar.jpg”。攻击者把这个参数改成“http://169.254.169.254/latest/meta-data/”(云服务器的内网元数据地址),服务器就会傻乎乎地替攻击者去访问内部资源,把密钥或配置信息带回来。这就像你让快递员去取件,结果他按着假地址闯进了你家保险柜。SSRF最阴险的地方在于,它让服务器成了攻击者的“跳板”,内网防护再严也白搭。

拿现实生活打比方:XSS是你在别人家客厅里装了摄像头,看人家输密码;CSRF是你趁主人出门,伪造他签名把房子过户了;SSRF是你让保安帮你开门,结果保安自己把金库门打开了。

防护思路也完全不同。XSS要过滤输出,把<script>变成无害字符;CSRF要加随机Token,让服务器确认“这请求确实是用户本人页面发出的”;SSRF最麻烦,得做URL白名单校验、禁止访问内网IP、甚至要DNS rebinding防护。有意思的是,很多开发团队把这三者混为一谈,用一套“输入过滤”就糊弄过去——结果XSS防住了,CSRF照样中招,因为CSRF根本不需要注入任何代码。

还有个容易忽略的点:XSS能间接导致CSRF。攻击者通过XSS拿到用户页面控制权后,可以直接构造CSRF请求——所以很多安全报告把XSS和CSRF连在一起报。但SSRF和它们几乎无交集,除非是极端场景下组合利用。搞懂这三兄弟,关键记住一句话:XSS害用户,CSRF骗服务器,SSRF坑服务器。方向对了,就不容易绕晕。

访客,请您发表评论:

© 2026. sitemap