跨站脚本攻击(XXS)

2019-12-08  本文已影响0人  六月太阳花

1、什么是XSS攻击

XSS攻击是指黑客网HTML文件中或者DOM中注入恶意脚本,从而使用户在浏览页面时利用恶意的注入脚本对用户实施攻击的一种手段。

2、恶意脚本会做哪些事情

(1)窃取Cookie信息
(2)监听用户行为
(3)可以通过修改DOM伪造登录窗口
(4)在页面内生成浮窗广告
......

3、恶意脚本是怎么注入的

(1)存储型XSS攻击

首先黑客利用站点漏洞将一段恶意的JavaScript代码提交到网站的数据库中;
然后用户向网站请求包含了JavaScript脚本页面;
恶意的脚本就会将用户的Cookie等数据上传到服务器。

(2)反射型XSS攻击

用户将一段含有恶意代码的请求提交给 Web 服务器,Web 服务器接收到请求时,又将恶意代码反射给了浏览器端,这就是反射型 XSS 攻击。
例如:

http://localhost:80/?xss=<script>alert('你被XSS攻击了')</script>

web服务器不会存储反射请XSS攻击的恶意脚本,这是和存储XSS攻击不同的地方

(3)基于DOM的XSS攻击

基于 DOM 的 XSS 攻击是不牵涉到页面 Web 服务器的。它的特点是在 Web 资源传输过程或者在用户使用页面的过程中修改 Web 页面的数据。
比如通过网络劫持在页面传输的过程中,修改HTML页面的内容。
利用工具(如Burpsuite)扫描目标网站所有的网页并自动测试写好的注入脚本等。

4、如何阻止XSS攻击

存储型XSS攻击和反射型XSS攻击都是需要经过Web服务器来处理的,因此可以认为这两种类型的漏洞是服务器的安全漏洞,而基于DOM的XSS攻击是属于前端的安全漏洞。
它们都有一个共同特点:首先向浏览器注入恶意脚本,然后在通过恶意脚本将用户信息发送至黑客部署的恶意服务器。
接下来我们来看一下常用的诅咒XSS攻击的策略

服务器对输入的脚本进行过滤或转码
充分利用CSP

实施严格的CSP可以有效防范,具体来讲CSP有如下几个功能。
1 限制加载其他域下的资源文件,这样即使黑客插入了一个JavaScript文件,这个JavaScript文件也是无法加载的;
2 禁止向第三方提交数据,这样用户的数据也不会外泄;
3 还提供了了上报机制,这样可以帮助我们尽快发现还有哪些XSS攻击,以尽快修复问题。

使用 HttpOnly属性

由于很多XSS攻击都是盗用Cookie的,因此还可以通过使用HttpOnly属性来保护我们的Cookie的安全。
设置了HttpOnly属性后,禁止Javascript通过document.cookie获得cookie值,只能通过http请求头携带。

上一篇下一篇

猜你喜欢

热点阅读