赞
踩
跨站脚本攻击(XSS),英文全称 Cross Site Script
XSS攻击,一般是指黑客通过在网页中注入恶意脚本,当用户浏览网页时,恶意脚本执行,控制用户浏览器行为的一种攻击方式
XSS攻击分为三种,反射型XSS、存储型XSS、DOM Based XSS.
了解什么是xss攻击,例子:
本地服务器demo目录下有个index.php,通过提交信息显示在页面上显示数据。
正常情况下:http:localhost/demo/index.php?name=张三,
网页上就会显示张三出来,这个信息是用户在浏览器的url中输入的,可以正常显示在页面上,但是如果在页面中插入一段javascript代码,页面就无法正常显示了,
例:http:localhost/demo/index.php?name=<script>window.open(http://www.fanyi.com)</script>,
例子虽然简单但是体现xss攻击的完整流程。
1.反射性XSS
也被称为非持久性XSS,这种攻击方式把XSS的Payload写在URL中,通过浏览器直接“反射”给用户。用户将一段含有恶意代码的请求提交给 Web 服务器,Web 服务器接收到请求时,又将恶意代码反射给了浏览器端,这种攻击方式通常需要诱使用户点击某个恶意链接,才能攻击成功。
2.存储型XSS
又被称为持久性XSS,会把黑客输入的恶意脚本存储在服务器的数据库中。当其他用户浏览页面包含这个恶意脚本的页面,用户将会受到黑客的攻击。一个常见的场景就是黑客写下一篇包含恶意JavaScript脚本的博客文章,当其他用户浏览这篇文章时,恶意的JavaScript代码将会执行
3.DOM Based XSS
基于 DOM 的 XSS 攻击是不牵涉到页面 Web 服务器的,其实就是利用后端代码的漏洞。它的特点是在 Web 资源传输过程或者在用户使用页面的过程中修改 Web 页面的数据.
XSS攻击的危害
我们把进行XSS攻击的恶意脚本成为XSS Payload。XSS Payload的本质是JavaScript脚本,所以JavaScript可以做什么,XSS攻击就可以做什么。
一个最常见的XSS Payload就是盗取用户的Cookie,从而发起Cookie劫持攻击。Cookie中,一般会保存当前用户的登录凭证,如果Cookie被黑客盗取,以为着黑客有可能通过Cookie直接登进用户的账户,进行恶意操作。
防御
其实如今一些流行的浏览器都内置了一些对抗XSS的措施,比如Firefox的CSP、IE 8内置的XSS Filter等。
将cookie等敏感信息设置为httponly,禁止Javascript通过document.cookie获得
对所有的输入做严格的校验尤其是在服务器端,过滤掉任何不合法的输入,比如手机号必须是数字,通常可以采用正则表达式.
净化和过滤掉不必要的html标签,比如:<iframe>, alt,<script> ;净化和过滤掉不必要的Javascript的事件标签,比如:onclick, onfocus等
转义单引号,双引号,尖括号等特殊字符,可以采用htmlencode编码 或者过滤掉这些特殊字符
HttpOnly
HttpOnly最早是由微软提出,并在IE6中实现的,至今已逐渐成为一个标准。浏览器将禁止页面的JavaScript访问带有HttpOnly 属性的Cookie。以下浏览器开始支持HttpOnly:
Microsoft IE 6 SP1+
Mozilla FireFox 2.0.0.5+
Mozilla Firefox 3.0.0.6+
Google Chrome
Apple Safari 4.0+
Opera 9.5+
一个Cookie的使用过程如下:
Step1: 浏览器向服务器发送请求,这时候没有cookie。
Step2: 服务器返回同时,发送Set-Cookie头,向客户端浏览器写入Cookie。
Step3: 在该Cookie到期前,浏览器访问该域名下所有的页面,都将发送该Cookie。而HttpOnly是在Set-Cookie时标记的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。