摘要:参考深入解析跨站请求伪造漏洞攻击的应对之道相关安全,是一个很重要的技能,也是一个领域的知识。我把这个领域的东西写成了一个系列,以后还会继续完善下去安全一同源策略与跨域安全二攻击安全三攻击
什么是CSRF
全称是(Cross Site Request Forgery)跨站请求伪造。也就是恶意网站伪装成用户向目标网站服务器发送请求,骗取服务器执行请求中的命令,直接在服务器改变数据值的一种攻击手段。
CSRF是怎么产生的用户需要获取操作的权限,目标网站服务器会要求一次验证,通常都是一次账号密码登录。服务器验证通过之后,会在浏览器写一个会话ID,来标识用户的身份。这是一种隐式验证的方法,用户只要验证一次获取到会话ID之后,在会话ID未过期的一段时间内的请求操作是不需要再次验证的。但服务器只能判断请求是来源于这个授权过的浏览器,而不能判断请求是否是用户发起或者是用户授权的。所以当用户浏览了恶意网站之后,恶意网站就可以给服务器发起带有命令的请求,尝试改变服务器中的数据值。
CSRF的攻击对象CSRF的攻击对象也就是我们要保护的对象。CSRF利用的是授权浏览器向目标网站服务器发送任何请求时,都会自动带上会话ID或者cookie进行身份验证。但是由于浏览器同源策略的限制,恶意网站无法看到目标网站的cookie或者回话ID,也没有办法解析返回的内容,所以恶意所能做的就是给服务器发送请求,以执行请求中所描述的命令,在服务器端直接改变数据的值,而非窃取服务器中的数据
CSRF的攻击手段利用iframe和javascipt发起post请求
window.onload=function(){ function steal() { var iframe = window.frames["steal"].document; var form = document.getElementsByTagName("form")[0]; form.submit(); } steal(); } CSRF的防御措施
1. 涉及到数据更改的操作服务器严格使用post请求而不是get请求
2. 验证HTTP Referer 字段
根据 HTTP 协议,在 HTTP 头中有一个字段叫 Referer,它记录了该 HTTP 请求的来源地址。恶意网站只能在他自己的网站伪造请求,所以验证referer应该是可以过滤掉一部分CSRF攻击的。但是使用Rerferer值,就相当于把安全性交给了第三方,浏览器实现referer的方式不能保证没有漏洞。据说IE6是可以修改referer的值的。另外referer会记录下用户的访问来源,有些用户会觉得是侵犯了其隐私,而且用户是可以设置使用浏览器时不再提供referer的。(所以说这种方法虽然简单但是不可靠)
3. 在请求地址中添加token
CSRF 攻击之所以能够成功,是因为黑客可以完全伪造用户的请求。服务器验证地址中加密的token,可以比较有效地避免攻击
4. HTTP头自定义属性验证
这个是token验证的变种,可以利用 XMLHttpRequest 这个类,一次性给ajax请求加上 特定的 HTTP 头属性,并把 token 值放入其中。
5 显式验证,添加验证码验证,密码验证等。
CSRF 攻击之所以能够成功,也是由于隐式验证,服务器无法判断请求真实地由用户发起和用户授权的。
总的来说,CSRF防御没有十全十美的方法,只有适合的方法。
参考
深入解析跨站请求伪造漏洞
CSRF 攻击的应对之道
【相关】
web安全,是一个很重要的技能,也是一个领域的知识。我把这个领域的东西写成了一个系列,以后还会继续完善下去:
web安全一:同源策略与跨域
web安全二:CSRF 攻击
web安全三:XSS 攻击
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/11348.html
摘要:参考深入解析跨站请求伪造漏洞攻击的应对之道相关安全,是一个很重要的技能,也是一个领域的知识。我把这个领域的东西写成了一个系列,以后还会继续完善下去安全一同源策略与跨域安全二攻击安全三攻击 什么是CSRF 全称是(Cross Site Request Forgery)跨站请求伪造。也就是恶意网站伪装成用户向目标网站服务器发送请求,骗取服务器执行请求中的命令,直接在服务器改变数据值的一种攻...
摘要:最近在学习安全相关的一些知识,目前对安全也只有了一些浅显的理解,下面记录我的一些理解。防御攻击的方法主要是修改数据的接口,尽量使用请求使用同源策略推荐的文章安全之攻击其实还讲了其他的几种方法,但是都没接触过,不太理解,所以没有写下来。 最近在学习web安全相关的一些知识,目前对web安全也只有了一些浅显的理解,下面记录我的一些理解。因为对这一块懂的东西不是很多,有些地方可能写的不对或者...
摘要:前言一直以来自己对安全方面的知识了解的比较少,最近有点闲工夫了解了一下。攻击的一般是由服务端解决。攻击条件登录受信任网站,并在本地生成。验证对所有引用对象的授权。 前言 一直以来自己对WEB安全方面的知识了解的比较少,最近有点闲工夫了解了一下。也是为了以后面试吧,之前就遇到过问WEB安全方面的问题,答的不是很理想,所以整理了一下! 一、XSS攻击 跨站脚本攻击(Cross Site ...
阅读 815·2021-11-18 10:07
阅读 2308·2021-10-14 09:42
阅读 5224·2021-09-22 15:45
阅读 571·2021-09-03 10:29
阅读 3447·2021-08-31 14:28
阅读 1857·2019-08-30 15:56
阅读 3026·2019-08-30 15:54
阅读 980·2019-08-29 11:32