XSS(Cross Site Scripting):跨站脚本攻击 CSRF(Cross-site request forgery):跨站请求伪造。
XSS和CSRF是什么?
XSS和CSRF攻击的特点
如何防范XSS和CSRF攻击
XSS(跨站脚本攻击)
- 篡改浏览器正常显示
- 窃取用户信息
XSS攻击是指攻击者在网站上恶意注入客户端代码,通过恶意脚本对客户端网页进行篡改,从而在用户浏览网页时,对用户浏览器进行控制或者获取用户隐私数据的一种攻击方式。
攻击者对客户端网页注入的恶意脚本一般包括JavaScript,有时会包括HTML和Flash。有很多种方式进行XSS攻击,但他们的共同点为:将一些隐私数据像cookie,seesion发送给攻击者,将受害者定向到一个由攻击者控制的网站,在受害者的机器上进行一些恶意的操作。
XSS攻击分类
- 反射性型(非持久型)
发出请求时,XSS代码出现在URL中,作为输入提交到服务器,作为输入提交到服务器端,服务器端解析后响应,XSS代码随响应内容一起传回浏览器,最后浏览器解析执行XSS代码。 - 存储型(持久型)
具有攻击性的脚本被保存到了服务器端,并且可以被普通用户完整的从服务器取得并且执行,能够在网络中传播。 - 基于DOM
- 基于DOM文档对象模型的一种漏洞,可以通过DOM来动态修改页面内容,从客户端获取DOM中的数据并在本地执行。基于这个特性,就可以利用JS脚本来实现XSS漏洞的利用。
XSS跨站脚本的防御措施( )
- 输入过滤
- 输入转义
- 使用HttpOnly Cookie
把重要的cookie标记为httponly,这样的话当刘看齐向Web服务器发起请求的时候就会带上cookie字段,但是在js脚本中却不能访问这个cookie,这样就避免了XSS攻击利用JavaScript的document.cookie获取cookie.
CSRF(跨站请求伪造)
黑客通过网站B 诱使用户去访问已经登录了的网站A 进行一些违背用户意愿的请求造成用户损失。
服务器中验证HTTP Referer字段,利用HTTP头中的Referer判断请求是否合法,referer记录了该HTTP请求的来源地址
在请求地址中添加token并验证(比referer更加安全)
加验证码(成本大)