2023-02-05 18:29:45
CSRF攻击,全称为跨站请求伪造(Cross-site request forgery),是一种利用用户已登录身份,在用户毫不知情的情况下,盗用用户身份完成非法操作的攻击方式。用户很可能在日常生活里遭遇过此类攻击。例如,收到一些看似来自银行、电商平台或其他机构的可疑邮件,邮件中包含链接和网页文件,若不小心点击这些链接,计算机就会将该网站上用户的身份信息发送给服务器,此时用户身份很可能被盗用,甚至造成经济损失。


GET接口攻击:假如博客网站A的页面具有GET接口,其中blogUserGuid参数显示关注人的ID,接口形式如下:
若攻击者在博文内容的html文档中加入img标签(该标签用以将图片链接向网页,可存放url,因此被利用来向web应用程序发送请求),形式如下:那么只要有人打开这篇博文,就会被网站自动关注指定用户。POST接口攻击:假如网站仍存在GET接口,但限制了只获取POST请求的数据,攻击者只需要制作一个包含form提交代码(form可以跨域post数据)的第三方页面,曾经打开过博客网站A的用户点击进入这个网页,便会中招。另一种选择是使用XMLHttpRequest技术。相关代码如下:
XSRF组合攻击:假如博客园有个加关注的接口,已经限制POST,但博文内容是直接贴进HTML(未过滤),这种情况下,攻击者会使用XSS攻击(恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的),直接把上面代码嵌入博文,那么只要有人打开这篇博文,还是会自动关注博文作者,这种组合攻击方式称为XSRF。

现在网络世界多以验证码与Cookie验证结合的方式作为CSRF的防御手段,而referer因为其不可靠性现在大多被禁用。相比于referer这样的旧事物,验证码防御不仅同样能达到防御CSRF攻击的目的,而且更有效、更简单。CSRF的防御手段不断迭代,向更高效、可靠的方向发展,体现了新事物必然代替旧事物的历史趋势。
网络攻击技术与防御技术彼此依赖,以另一方的存在为前提,体现了矛盾的“同一性”。同时,它们又相互制约、互相斗争,体现了矛盾的“斗争性”。网络攻击技术与网络防御技术犹如“矛”与“盾”,网络攻击技术的发展往往加快了防御技术成熟的脚步,而防御技术的成熟也往往伴随着攻击技术的更新迭代,引起量变与质变,促进网络攻防技术的综合发展。
网络在发展过程中必然会遇到各种各样的问题,这些问题受时代和技术的限制往往十分棘手,但我们要坚信哪里有问题,哪里就有解决问题的方法。相信随着网络攻防技术的发展和人们网络安全意识的加强,网络环境会变得更加安全、开放。
内容源自成电本科生人文科普(如有侵权请联系删除)