web安全之XSS浅析

Web安全定义



随着web2.0、社交网络、微博等等一系列新型的互联网产品的诞生,基于Web环境的互联网应用越来越广泛,企业信息化的过程中各种应用都架设在Web平台上,Web业务的迅速发展也引起黑客们的强烈关注,接踵而至的就是Web安全威胁的凸显,黑客利用网站操作系统的漏洞和Web服务程序的SQL注入漏洞等得到Web服务器的控制权限,轻则篡改网页内容,重则窃取内部数据,更为严重的则是在网页中植入恶意代码,使得网站访问者受到侵害。这使得越来越多的用户关注应用层的安全问题,Web应用安全的关注角度也逐渐升温。


跨站脚本攻击(XSS)



XSS全称(Cross Site Scripting)跨站脚本攻击,是web程序中最常见的漏洞。XSS攻击指的是攻击者在网页中嵌入客户端脚本就像javascript代码之类的,当用户浏览被注入脚本的网页的时候,脚本就会在用户的浏览器上面执行,从而达到攻击者的目的。例如获取用户的Cookie,跳转到恶意网站,携带木马病毒等等。


跨站脚本攻击(XSS)是如何产生的



XSS之所以产生的原因就是用户输入变成了代码。
例如有如下一个用户输入框
<input type="text" name="address" value = "inputValue">
用户输入正常就正常,假如用户输入一个不正常的数据例如输入"/><script>alert(document.cookie)</script><!-那么此时输入框就会变成
<input type="text" name="address" value="" /><script>alert(document.cookie)</script><!-">
上面这段嵌入的javascript代码将会被执行
或者用户输入"onfous="alert(document.cookie)输入框将会变成如下
<input type="text" name="address" value="" onfous="alert(document.cookie)">
当事件被触发的时候,嵌入到的javascrit代码也将会执行,从这里就可以看出如若输入了一串攻击性非常强的脚本,后果不堪设想。


用户提交的数据还可以通过QueryString(放在URL中)和cookie发送给服务器。http://ddd.rog/wei/gol.php?id=<script>alert(document.cookie)</script><!-





XSS漏洞修复

原则:不要相信用户输入的数据
注意:攻击代码不一定在<script></script>中
将重要的cookie标记为http only,这样的话javascript中的document.cookie语句就不能获取到cookie了。
只允许用户输入我们期望的数据。例如:年龄的textbox中,只允许用户输入数字,其他的就给过滤掉。
对数据进行HTML Encode处理。
过滤或者移除特殊的HTML标签,例如:<script>,<iframe>,&It,for<,&gt,for>,&quot for。
过滤javascript事件的标签,例如"onclick=","onfocus"等等。

测试XSS漏洞

一种方法是将准备的脚本输入网页能输入的地方,如果能够弹出对话框,说明存在XSS漏洞。
在URL中查看那些变量通过URL将值传递给Web服务器,把这些变量的值换成我们的测试脚本,然后看看是否能够执行。

猜你喜欢

转载自blog.csdn.net/lq15310444798/article/details/78199416