查看: 2181|回复: 25

通过以下五个技巧最大程序预防XSS的攻击

[复制链接]
发表于 2013-2-19 10:27:17 | 显示全部楼层 |阅读模式

在前面的文章中,我们具体介绍了各种XSS攻击的原理和方式。可以看出,XSS是一种覆盖面很广,隐蔽性很高,危害也非常大的网络应用安全漏洞。除非网站服务器完全不存在XSS漏洞,否则就会给攻击者们留下空子。因此,如何在Web应用程序的开发过程中对XSS漏洞进行预防,是所有网站开发人员所必须注意的重中之重。下面我们介绍几种常用的XSS预防措施。


1. 输入检测

         对 用户的所有输入数据进行检测,比如过滤其中的“<”、“>”、“/”等可能导致脚本注入的特殊字符,或者过滤“script”、 “javascript”等脚本关键字,或者对输入数据的长度进行限制等等。同时,我们也要考虑用户可能绕开ASCII码,使用十六进行编码如 “<</span>”(“<”)、“>”(“>”)等来输入脚本。因此,对用户输入的十六进制编码,我们也要进行相 应的过滤。只要开发人员能够严格检测每一处交互点,保证对所有用户可能的输入都进行检测和XSS过滤,就能够有效地阻止XSS攻击。

2. 输出编码

         通 过前面对XSS攻击的分析,我们可以看到,之所以会产生XSS攻击,就是因为Web应用程序将用户的输入直接嵌入到某个页面当中,作为该页面的HTML代 码的一部分。因此,当Web应用程序将用户的输入数据输出到目标页面中时,只要用HtmlEncoder等工具先对这些数据进行编码,然后再输出到目标页 面中。这样,如果用户输入一些HTML的脚本,也会被当成普通的文字,而不会成为目标页面HTML代码的一部分得到执行。

3. Cookie防盗

         利 用XSS攻击,攻击者可以很方便地窃取到合法用户的Cookie信息。因此,对于网站来说,不能在Cookie信息中存放太多敏感信息,也不能将 Cookie作为身份认证的唯一标识,等等。因此,对于Cookie,我们可以采取以下的措施。首先,我们要尽可能地避免在Cookie中泄露隐私,如用 户名、密码等;其次,我们可以将Cookie信息用MD5等Hash算法进行多次散列后存放;再次,为了防止重放攻击,我们也可以将Cookie和IP进 行绑定,这样也可以阻止攻击者冒充正常用户的身份。

4. 严格限制URL访问

         攻 击者使用XSS攻击,通常都要借助于自己指定的网站页面,比如用它来记录敏感信息、在该页面上“******”等等。因此,在页面的脚本代码执行过程中,只要我们 严格限制其访问的URL,比如只允许脚本代码访问本网站的URL等方式,就可以避免脚本的执行链接到其它可能是攻击者指定的页面上。

5. 用户注意事项

         作 为一名普通的网络用户,在XSS攻击的预防上总体处在被动的地位。但是我们也可以通过采取一些措施来尽可能地避免受到XSS攻击。首先,我们不要轻易相信 电子邮件或者网页中的不明链接,这些链接很有可能引导反射型XSS攻击或者使我们访问到一些不安全的网页。其次,我们在不必要的时候可以禁用脚本功能,这 样XSS注入的脚本就无法得到运行。再次,我们也可以使用一些安全的浏览器上网,有的浏览器提供XSS过滤功能,会提示页面中可能发生的XSS注入并将其 阻挡下来。



现在的xss攻击是越来越多,在web2.0,网页越来越丰富,程序动态检测起来将越麻烦。所以提前做好xss的预防,是必不可少的了。 &#8203;
发表于 2013-2-25 06:31:29 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2013-2-26 04:16:09 | 显示全部楼层
支持你一下下。。  
发表于 2013-3-1 13:14:54 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2013-3-2 20:16:01 | 显示全部楼层
不错,看看。  
发表于 2013-3-2 20:50:26 | 显示全部楼层
不错不错,我喜欢看  
发表于 2013-3-3 00:17:44 | 显示全部楼层
琴棋书画不会,洗衣做饭嫌累。  
发表于 2013-3-3 02:05:39 | 显示全部楼层
哈哈,看的人少,回一下  
发表于 2013-3-3 17:58:00 | 显示全部楼层
做对的事情比把事情做对重要。  
发表于 2013-3-3 23:20:50 | 显示全部楼层
这个贴好像之前没见过  
高级模式
B Color Image Link Quote Code Smilies

本版积分规则