Web安全教程之CSRF(跨站点请求伪造)

所属分类: 网络安全 / 黑客教程 阅读数: 156
收藏 0 赞 0 分享

前言

我们在前端面试过程中遇到的另一个最多的问题就是web安全了,这次我们来聊聊CSRF攻击。CSRF是一种常见的攻击,但是也是web安全中最容易被忽略的一种攻击方式。下面话不多说了,来一起看看详细的介绍吧。

什么是CSRF(跨站点请求伪造)

根据字面意思,大概能猜到,CSRF攻击就是攻击者伪造了用户的请求,在用户不知道的情况下,以用户的名义向服务器发送恶意请求。常见的场景是,用户首先登陆一个正常(下面称为被攻击网站)的网站,攻击者诱使用户在不关闭被攻击网站的同时打开攻击者的页面,这时攻击者就可以以用户的名义给被攻击网站发送恶意请求了。可以看出CSRF是有条件的,首先用户要登陆被攻击网站,并生成Cookie,然后在不登出被攻击网站的同时,访问攻击网站。这两个条件缺一不可。

CSRF进阶

浏览器Cookie策略

CSRF之所以能成功,主要还是因为用户的浏览器成功发送了Cookie的缘故。浏览器所持有的Cookie分为两种:一种是“Session Cookie”,又叫“临时Cookie”;另一种是“Third-party Cookie”,也称为“本地Cookie”。
 

Third-party Cookie,服务器在Set-Cookie时指定了Expire时间,只有到了Expire时间后Cookie才会失效,而Session Cookie则没有指定Expire时间,浏览器关闭后就失效了。如果浏览器从一个域的页面中,要加载另一个域的资源,由于安全原因,某些浏览器会阻止Third-party Cookie的发送。由于新打开的页面和原来的页面在同一个浏览器进程中,所以Session Cookie将会被发送。

IE浏览器处于安全考虑是禁止浏览器在<img>、<iframe>、<script>、<link>等标签中发送第三方Cookie的。当前的主流浏览器中,默认会拦截Third-party Cookie的有:IE6~8、Safari,不会拦截的有:Firefox、Opera、Chrome等。

只有GET请求么?

在CSRF攻击流行之初,有一种错误的观点认为CSRF攻击只能由GET发起,这种错误观点的形成原因是大多数CSRF攻击发起时,使用的HTML标签都是<img>、<iframe>、<script>等带src属性的标签,这列标签只能够发起一次GET请求,而不能发起POST请求。然而,对于攻击者来说,有若干种方法可以构造出一个POST请求。最简单的方法就是在一个页面中构造好一个form表单,然后使用javascript自动提交这个表单。

<form action="http://www.a.com/register" id="register" method="post" accept-charset="utf-8">
    <input type="text" name="username" value=""/>
    <input type="password" name="password" value=""/>
    <input type="submit" name="submit" value="submit"/>
</form>
<script>
    var f = document.getElementById("register");
    f.inputs[0].value = "test";
    f.inputs[1].value = "passwd";
    f.submit();
</script>

CSRF防御

验证码

验证码是对抗CSRF攻击最简单有效地防御方法。CSRF攻击往往是在用户不知情的情况下构造了网络请求。而验证码则强制用户必须与应用进行交互,才能完成最终请求。
但是验证码并不是万能的,我们不可能给页面的所有操作都加上验证码。

Referer Check

Referer Check在互联网中最常见的应用就是“防止图片盗链”。同理,Referer Check也可以被用于检查请求是否来自合法的源。

Anti CSRF Token

CSRF攻击存在的本质原因还是网页中重要操作的所有参数都是可以被攻击者猜测到的。攻击者只有预测出url所有参数与参数值,才能成功地构造一个伪造的请求。所以我们可以通过把参数加密,或者使用一些随机数,从而让攻击者无法猜测到参数值。
 

我们可以给请求新增加一个token,这个token值是随机的。

http://host/path/delete?username=abc&item=123&token=[random(seed)]

由于token的存在,攻击者就无法再构造出一个完整的url来实施CSRF攻击了。

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

更多精彩内容其他人还在看

WannaCry病毒劫持文件怎么恢复?阿里云云盾勒索病毒文件恢复的使用教程

名为WannaCry的勒索病毒让全球数十万Windows计算机中招,重要文件被实施加密,并索要赎金解锁,现在阿里云安全团队开放勒索病毒“一键解密和修复”工具,恢复已被WannaCry勒索病毒加密的文件,下面就来看看具体的操作方法吧
收藏 0 赞 0 分享

极虎病毒是什么 极虎病毒有什么危害

极虎病毒是金山毒霸云安全实验室国内首家发现的一款集合了磁碟机、AV终结者、中华吸血鬼、猫癣下载器为一体的混合病毒,由于该病毒可利用IE极光ODAY漏洞进行传播,又是虎年的第一个重大恶性病毒,因此得名“极虎”
收藏 0 赞 0 分享

全国各地敲响网络安全警钟 河南企业如何应对?

近日,很多人的朋友圈都被“重庆网安总队查处某公司违反《网络安全法》第一案”刷屏了,不知道接下来又有哪家企业“中招”?紧接着,即将召开的十九大也会进一步加大对网络信息安全的监管力度,这些都给河南省乃至全国企事业单位的网络信息安全工作敲响了警钟
收藏 0 赞 0 分享

网络安全基础问答25例,白帽黑客和安全研究员必备!

这篇文章主要为大家介绍了网络安全基础,入门必看,对于想学习网络安全的朋友必须要了解的东西
收藏 0 赞 0 分享

有什么有效的方法能禁止员工将公司电脑中的文件拷贝出去、禁止员工复制公司电脑文件

这篇文章主要介绍了有什么有效的方法能禁止员工将公司电脑中的文件拷贝出去、禁止员工复制公司电脑文件的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

如何禁止外来电脑访问共享文件、如何禁止手机访问共享文件

为了日常工作方便,设置共享文件服务器通常是大多数企业的管理方式,共享文件服务器上的共享文件仅用于局域网内的用户使用,本文给大家介绍如何禁止外来电脑访问共享文件、如何禁止手机访问共享文件,需要的朋友参考下吧
收藏 0 赞 0 分享

安装大势至电脑文件防泄密系统客户端提示“用户/密码错误”怎么解决

这篇文章主要介绍了安装大势至电脑文件防泄密系统客户端提示“用户/密码错误”怎么解决的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

大势至电脑文件防泄密系统的比较优势,专业的电脑数据防泄漏软件

这篇文章主要介绍了大势至电脑文件防泄密系统的比较优势,专业的电脑数据防泄漏软件的相关资料,大势至电脑文件防泄密系统主要从三个方面进行控制,即存储设备控制、上网行为控制、操作系统控制,从而构建立体化、全方位信息安全防护平台
收藏 0 赞 0 分享

大势至共享文件管理系统的比较优势,专业的共享数据权限设置工具、公司共享文件管理系

这篇文章主要介绍了大势至共享文件管理系统的比较优势,专业的共享数据权限设置工具、公司共享文件管理系统的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

大势至电脑文件加密系统简介、大势至电脑文件加密系统优势

这篇文章主要介绍了大势至电脑文件加密系统简介、大势至电脑文件加密系统优势的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享
查看更多