Web站点防止跨站脚本攻击(XSS)的解决方案

信息安全相关 09/22 阅读 1135 views次 人气 0
摘要:

跨站脚本攻击就是指恶意攻击者向网页中插入一段恶意代码,当用户浏览该网页时,嵌入到网页中的恶意代码就会被执行,盗取浏览器cookie,威胁网站的安全。

跨站脚本攻击漏洞,英文名称Cross Site Scripting,简称CSS又叫XSS。恶意攻击者向Web网站页面中插入一段恶意代码,当用户浏览该页面时,嵌入到Web页面中的恶意代码就会被执行,从而达到恶意攻击者的特殊目的。


Web站点中所包含的脚本直接将用户在HTML页面中的输入(通常是参数值)返回,而不预先加以清理。如果脚本在响应页面中返回由JavaScript代码组成的输入,浏览器便可以执行此输入。 因此,有可能形成指向站点的若干链接,且其中一个参数包含恶意的JavaScript代码。该代码将在站点上下文中(由用户浏览器)执行,这使得该代码有权访问用户在该站点中具有访问权的cookie,以及站点中其他可通过用户浏览器访问的窗口。

Web站点防止跨站脚本攻击(XSS)的解决方案_副本.png

1、攻击依照下列方式继续进行:攻击者诱惑合法用户单击攻击者生成的链接。用户单击该链接时,便会生成对于Web站点的请求,其中的参数值含有恶意的JavaScript代码。如果Web站点将这个参数值嵌入在响应的HTML页面中(这正是站点问题的本质所在),恶意代码便会在用户浏览器中运行。

2、比如有一天打开一个网站,突然弹出一个窗口提示叫你登陆,你以为是这个网站让你登陆的,当你输入账户密码以后你的所有操作都被黑客记录了,还有小白问“盗取浏览器cookie有什么用”,黑客盗取你的浏览器cookies以后,可以利用你的cookie登陆你在特定网站或者论坛的账户。

3、网站常见的存在跨站的地方多半都在留言本,搜索,评论。这些地方,特别是有留言和评论的地方要注意,网站这两个地方存在跨站,黑客可以直接在这两个地方提交跨站攻击脚本,登陆后台查看留言和评论以后就被攻击了。


解决方案概述:

1、通过输入。过滤用户输入的内容,检查用户输入的内容中是否有非法内容。如<>(尖括号)、"(引号)、 '(单引号)、%(百分比符号)、;(分号)、()(括号)、&(&符号)、+(加号)等。

2、通过输出。严格控制输出,输出时对XSS漏洞的参数进行过滤。


Java语言的处理方案参考:

1、XSS攻击详述 http://www.what21.com/sys/view/java_javaweb-summary_1456896125462.html

2、XSS模拟攻击 http://www.what21.com/sys/view/java_javaweb-summary_1456896125462.html

3、XSS解决方案 http://www.what21.com/sys/view/java_javaweb-summary_1456896125971.html


PHP语言的处理方案:

1、使用htmlspecialchars()、htmlentities()、strip_tags()、header()、urlencode()和intval()等函数来处理。

2、通过自定义函数,通过实现黑白名单的方法,过滤掉非法的XSS敏感字符。


Python语言的处理方案:

1、使用python语言提供的函数:escape("")、replaceAll("")等函数来处理。

2、使用开源的漏洞修复插件处理XSS。


ASP.NET的处理方案:

1、使用Server.UrlEncode("")、Server.UrlDecode("")、Server.HtmlEncode("")和Server.HtmlDecode("")等函数来处理。

2、功能更强的Microsoft Anti-Cross Site Scripting Library,微软提供的反跨站脚本库来处理。


其他的解决方案:

1、如安装第三方应用的防火墙。

2、如果是虚拟主机、云主机,则购买相应的安全产品提供服务。


评论

该文章不支持评论!

分享到: