1.csrf介绍
攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并运行一些操作(如发邮件,发消息,甚至财产操作如转账和购买商品)。由于浏览器曾经认证过,所以被访问的网站会认为是真正的用户操作而去运行。这利用了web中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。
如上图所示,CSRF攻击攻击原理及过程如下:
(1)用户打开浏览器,访问受信任银行网站A,输入用户名和密码请求登录网站;
(2)在用户信息通过验证后,网站产生Cookie信息并返回给浏览器,此时用户登录网站成功,可以正常发送请求到网站;
(3)用户未退出银行网站之前,在同一浏览器中,打开一个TAB页访问其他网站B;
(4)这时候网站B 已被黑客注入诱导信息,假如是一张图片,图片地址指向黑客构造的恶意url,该url能完成黑客想干的某件事,比如修改用户的密码;
(5)多数情况下,浏览器接收到这个url 请求会失败,因为它要求用户的认证信息。但是,如果用户还未退出网站A,或者当时恰巧刚访问网站A不久,他的浏览器与网站A之间的session 尚未过期,浏览器的cookie 之中含有用户的认证信息。这时,悲剧发生了,这个url 请求就会得到响应,黑客就能以用户的权限修改密码,且用户毫不知情。
原文链接:https://blog.csdn.net/xv7777666/article/details/130010807
2.csrf危害
(1)篡改目标网站上的用户数据
(2)盗取用户隐私数据
(3)作为其他攻击向量的辅助攻击手法
(4)传播 CSRF 蠕虫
3.csrf高发点
(1)论坛交流
(2)用户中心
(3)反馈留言
(4)交易管理
(5)后台管理
4.csrf漏洞检测
5.csrf防御
(1)不允许浏览器记住密码
(2)使用验证码
(3)检验HTTP Referer来源
(4)随机Token验证
(5)refer头:Referer标识当前请求的来源页面,浏览器访问时除了自动带上Cookie还会自动带上Referer,所以服务端可以检测Referer头是否本网站页面来决定是否响应请求。
备注:短链接生成工具:http://ddz.ee