一、什么是CSRF:
CSRF(Cross-Site Request Forgery,跨站请求伪造)是一种利用用户在某个网站中已经认证的身份来伪造请求的攻击方式。攻击者通过欺骗用户点击恶意链接或者访问恶意网站,在用户已经登录了目标网站的情况下,发送伪造的请求来执行攻击。这种攻击方式可以用于执行未经授权的操作,如更改密码、修改用户信息、购买商品等。
常用于盗取账号、转账、发送虚假消息等。攻击者利用网站对请求的验证漏洞而实现这样的攻击行为,网站能够确认请求来源于用户的浏览器,却不能验证请求是否源于用户的真实意愿下的操作行为。
二、CSRF的原理:
在浏览器中cookie在一段时间内是不会过期(不关闭或者退出浏览器),再次访问都会默认登录,这个应该都有体验。如果在cookie存在期间,通过构造csrf脚本或包含csrf脚本的链接发送给用户,得到信息后,再伪造成用户身份,执行相关操作。
三、完成CSRF攻击的条件:
要完成一次CSRF攻击,受害者必须依次完成两个步骤:
1.登录受信任网站A,并在本地生成Cookie。
2.在不登出A的情况下,访问危险网站B。
四、CSRF攻击流程:
用户在某网站A进行登录
-------->
身份验证成功返回cookie给用户
--------->
攻击者构建一个网站F,诱使用户使用同一浏览器进入(前提:未退出网站A,一般都会有默认浏览器)
--------->
网站F收到用户请求后,返回恶意代码给用户,强制他访问网站A
--------->
用户浏览器在网站A上执行相关操作(以已经持有的cookie)