CSRF/XSS
一、CSRF
1.基本概念和缩写:
- 跨站请求伪造;Cross-Site Request Forgery 缩写CSRF
2.攻击原理
CSRF攻击原理.png
1.用户是网站A的注册用户,通过身份验证登录网站A,登录之后网站A核查身份是不是正确的,
如果正确就下发cookie,这个cookie保存到用户浏览器当中,这就是完成了一次身份认证的过程。
2.用户又访问了一个网站B,网站B会给用户下发用户页面的时候,会存在引诱的一个点击,这个点击
往往是一个链接,就是指向网站A的一个API接口,接口是GET类型,比如:www.xxx.com/hack,
指向存在漏洞的接口,当用户经不住引诱点击了这个东西,这个点击就访问了A网站,访问A网站
这个链接的时候,浏览器会自动上传cookie,上传之后网站A觉得是A这个Cookie拿过来之后对身
份重新认证,发现是合法用户,就执行了这个接口的动作。
-
重点:用户在注册网站登录过,没有登录会提示登录;
-
CSRF能够造成攻击的原理:(实现CSRF攻击不可缺失的连个因素)
- 网站中某一个接口存在漏洞
- 这个用户在注册网站确实登录过
3.防御措施
1.加Token验证
访问接口的时候,浏览器自动上传cookie,但是没有手动上传一个Token,这个Token是你注册成功
以后,或者没有注册,只要你访问了这个网站,服务器会自动的向你本地存储一个Token,在你访问
各种接口的时候,如果没带Token,,就不能帮你通过验证,如果只是点击了引诱链接,这个链接只会
自动携带cookie,不会自动携带Token,所以就避免了那个攻击。
2.Referer验证
Referer指的是页面来源,如果服务器判断页面来的是不是我的这个站点下面的页面,如果是就执行
你这个动作,如果不是就拦截。
3.隐藏令牌
和Token有点像,做法:隐藏在http的head头中,不会放在链接上,这样就做的比较隐蔽。本质上没
有太大区别。只是使用方式有一点差别。
二、XSS
1.基本概念和缩写:
- 跨域脚本攻击;Cross-Site Scripting 缩写XSS
2.攻击原理(核心宗旨:让你插入的js不可执行)
http://www.immoc.com/learn/812
3.防御措施
http://www.immoc.com/learn/812
4.和CSRF区别:
- XSS不需要做任何的登录认证,核心原理向你页面注入脚本;
eg:比如评论区:如果评论区注入XSS最好的方式可以在你提交区里面写上script标签,img标签上加事件,总之,它的方法利用你合法的渠道向你页面注入js,这是XSS攻击原理。 - XSS是向你页面注入js运行,然后js函数体里面做它想做的事情。
- CSRF利用你本身的漏洞,去帮你自动执行那些接口。
------这两种攻击方式是不一样的,CSRF要依赖用户要登录网站。
作者:飞菲fly
链接:https://www.jianshu.com/p/6e5189d1021b
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。