一、什么是CSRF
1.1简介
csrf(cross-site request forgery)跨站请求伪造。缩写为CSRF或XSRF。CSRF通过利用受信任用户的请求来利用受信任的网站,简单来说,就是利用用户请求来利用网站。
1.2 CSRF和XSS区别
XSS是利用用户对浏览器的信任 盗取cookie
CSRF是利用网站对用户浏览器的信任 对网站发起请求,达到攻击者述求
1.3 CSRF原理
用户浏览器保存了连接网站服务器的cookie信息,并且打开了攻击者的网页,导致攻击者可以利用用户的cookie想网站服务器发送正常的请求。
实现CSRF攻击的必要条件:
- cookie存活
- 用户点击了攻击者的网页(网页里包含了向服务器发送请求的代码)
1.4 CSRF的防御
- 添加
referer
、token
或者验证码
来检测用户提交
添加referer:服务端会利用stripos()函数来检测我们的referer来源是否相同,不同则是非法操作。
添加token:服务器在接受到请求后, 返回给用户两个csrf_token值, 一个放在cookie信息中,浏览器会保存,下次请求的时候浏览器自动携带.