热门课程

免费试听

上课方式

开班时间

当前位置: 首页 -   文章 -   新闻动态 -   正文

什么是 CSRF 攻击,如何避免?防止csrf攻击的方法

知了姐
2024-09-03 11:04:52
0

  网络攻击在现在的互联网时代是屡见不鲜,今天我们来看看什么是CSRF攻击,如何避免?防止csrf攻击的方法。

  CSRF(Cross-site request forgery)也被称为 one-click attack或者 session riding,中文全称是叫跨站请求伪造。一般来说,攻击者通过伪造用户的浏览器的请求,向访问一个用户自己曾经认证访问过的网站发送出去,使目标网站接收并误以为是用户的真实操作而去执行命令。常用于盗取账号、转账、发送虚假消息等。攻击者利用网站对请求的验证漏洞而实现这样的攻击行为,网站能够确认请求来源于用户的浏览器,却不能验证请求是否源于用户的真实意愿下的操作行为如何避免。

什么是CSRF攻击,如何避免?

  1)验证 HTTP Referer 字段

  HTTP头中的Referer字段记录了该 HTTP 请求的来源地址。在通常情况下,访问一个安全受限页面的请求来自于同一个网站,而如果黑客要对其实施 CSRF攻击,他一般只能在他自己的网站构造请求。因此,可以通过验证Referer值来防御CSRF 攻击

  2)使用验证码

  关键操作页面加上验证码,后台收到请求后通过判断验证码可以防御CSRF。但这种方法对用户不太友好

  3)在请求地址中添加token并验证

  l CSRF 攻击之所以能够成功,是因为黑客可以完全伪造用户的请求,该请求中所有的用户验证信息都是存在于cookie中,因此黑客可以在不知道这些验证信息的情况下直接利用用户自己的cookie来通过安全验证。

  要抵御 CSRF,关键在于在请求中放入黑客所不能伪造的信息,并且该信息不存在于 cookie 之中。可以在 HTTP 请求中以参数的形式加入一个随机产生的 token,并在服务器端建立一个拦截器来验证这个 token,如果请求中没有token或者 token 内容不正确,则认为可能是CSRF 攻击而拒绝该请求。

什么是CSRF攻击,如何避免?防止csrf攻击的方法。

  这种方法要比检查 Referer 要安全一些,token 可以在用户登陆后产生并放于session之中,然后在每次请求时把token 从 session 中拿出,与请求中的 token 进行比对,但这种方法的难点在于如何把 token 以参数的形式加入请求。

  l 对于 GET 请求,token 将附在请求地址之后,这样 URL 就变成 http://url? csrftoken=tokenvalue 。

  l 而对于 POST 请求来说,要在 form 的最后加上,这样就把token以参数的形式加入请求了

  4)在HTTP 头中自定义属性并验证

  这种方法也是使用 token 并进行验证,和上一种方法不同的是,这里并不是把 token 以参数的形式置于 HTTP 请求之中,而是把它放到 HTTP 头中自定义的属性里。通过 XMLHttpRequest 这个类,可以一次性给所有该类请求加上 csrftoken 这个 HTTP 头属性,并把 token 值放入其中。

  这样解决了上种方法在请求中加入 token 的不便,同时,通过 XMLHttpRequest 请求的地址不会被记录到浏览器的地址栏,也不用担心 token 会透过 Referer 泄露到其他网站中去

  什么是 CSRF 攻击,如何避免?防止csrf攻击的方法。关注知了堂成都网络安全培训机构,带你了解更多相关问题。


大家都在看

程序员金九银十想要跳槽加薪?你首先得做好这些

2024-09-03 浏览次数:0

冬令营精彩回顾,我们看到了一群未来可期的人

2024-09-03 浏览次数:0

代码审计岗位怎么样?小白入门要多久?

2024-09-03 浏览次数:0

知了汇智引领产教融合新篇章:成都纺织高专与西南石...

2024-09-03 浏览次数:0

0基础学Java,必看的Java技术学习方法

2024-09-03 浏览次数:0

知了堂网络安全校园行来到攀枝花学院

2024-09-03 浏览次数:0
最新资讯
什么是 CSRF 攻击,如何避...   网络攻击在现在的互联网时代是屡见不鲜,今天我们来看看什么是CSRF攻击,如何避免?防止csrf攻...
什么是Java工程师?Java...   什么是Java工程师?  Java应用可谓无所不在,从桌面办公应用到网络数据库等应用,从PC到嵌...
什么是网络安全?网络安全专业可...   随着计算机技术的飞速发展,信息网络已经成为社会发展的重要保证。有很多是敏感信息,甚至是国家机密。...
什么是静态测试?静态测试工具有...   做过软件测试的人都应该对测试方式烂熟于心,如白盒测试,黑盒测试,性能测试,动态测试,静态测试等等...
什么是静态测试?静态测试工具有...   做过软件测试的人都应该对测试方式烂熟于心,如白盒测试,黑盒测试,性能测试,动态测试,静态测试等等...
什么是java架构师?Java... Java架构师是什么?Java架构师是整个开发项目的灵魂人物,负责了整个技术关口的把控,也是广大程序...
什么是服务器脚本语言?哪些是常... 服务器脚本是对服务器行为的编程,称为服务器脚本。你知道什么是服务器脚本语言吗?最常用的服务器脚本语言...
什么是渗透测试:某网站的渗透测... 在网络安全领域,渗透测试扮演着至关重要的角色。它是对计算机系统、网络或应用程序进行的一种安全评估方法...