CSRF攻击

攻击原理

  1. 用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;
  2. 在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;3.
  3. 用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B;
  4. 网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A
  5. 浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站A并不知道该请求其实是由B发起的,所以会根据用户C的Cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行。

防御

  1. 验证HTTP Referer。正常情况下,转账请求的Referer值是转账按钮所在页面的url,也就是以银行域名开头的url,如果黑客要实施攻击,他只能在自己的网站构造请求,所以该转账请求的Referer指向的是黑客的恶意网站地址,因此网站可以验证请求的Referer值,如果不是自己网站的域名,就拒绝请求。
  2. 利用token。当用户访问的网页中含有需要修改数据的地方,后端服务器就会随机发送一个Token值给前端,然后用户修改完数据提交的请求包中,就会有该token字段,后端提取该token验证登录状态。每次访问该网页或者其他修改数据的网页时,服务器端返回的Token值都是不同的,都是随机的。这样,可以有效预防CSRF。
posted @   学海无涯#  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示