XSS (cross-site scripting),即跨站脚本攻击,它的本质还是一种“HTML注入”,用户的数据被当成了HTML代码一部分来执行,从而混淆了原本的语义,产生了新的语义。
来看一张某网站遭受XSS攻击后的图片,
其实就是攻击者发送了一段html代码,就达到了上述的效果。
<img height="0" width="0" src="xx" onerror='function fn(){n = $("#userName").html();$("textarea#pub_msg_input.msg-input").val(n + "说:虎牙妹妹长得真不错");$("#msg_send_bt").click();}setInterval(fn, 3000)'>
这段代码的大致意思是故意加载一张不存在的图片,于是出错后就执行了onerror中的js代码,这段js代码会获取当前登录用户的用户名,并使用同样的内容“虎牙妹妹长得真不错”进行发送,只要其他登录用户一打开此页面,并加载到刚才攻击者发送的内容,就会像蠕虫一样传染开。
解决办法可以使用第三方类库在后台将输入的文本进行过滤,可以在网上找到很多开源的“XSS Filter”的实现:
1、在OWASP ESAPI(Enterprise Security API)中有几个安全的JavascriptEncode、HtmlEncode、XMLEncode、JSONEncode的实现,非常严格。
ESAPI的maven依赖如下:
<dependency>
<groupId>org.owasp.esapi</groupId>
<artifactId>esapi</artifactId>
<version>2.1.0</version>
</dependency>
使用ESAPI防止XSS的做法:
String safe = ESAPI.encoder().encodeForHTML( request.getParameter( "input" ) );
对用户输入“input”进行HTML编码,防止XSS。
使用ESAPI防止ORACLE数据库SQL注入的做法:
String sqlStr=“select name from tableA where id=”+
ESAPI.encoder().encodeForSQL(ORACLE_CODEC,validatedUserId)
+ "and date_created"='"
+ ESAPI.encoder().encodeForSQL(ORACLE_CODEC,validatedStartDate)+"'";
myStmt = conn.createStatement(sqlStr);
2、在“Apache Common Lang”的“StringEscapeUtils”里,提供了许多escape的函数。
3、Anti-Samy是OWASP上的一个开源项目,也是目前最好的XSS Filter。最早它是基于Java的,现在已经扩展到.NET等语言。
Anti-Samy的maven依赖如下:
<dependency>
<groupId>org.owasp</groupId>
<artifactId>antisamy</artifactId>
<version>1.4</version>
</dependency>
- 大小: 65.6 KB
分享到:
相关推荐
### 浏览器原理与XSS蠕虫攻击详解 #### 一、浏览器的分类和发展史 自互联网诞生以来,浏览器一直是连接用户与网络世界的桥梁。随着技术的进步与用户需求的变化,浏览器经历了从单一功能到多功能集成的发展过程。...
### XSS蠕虫&病毒——即将发生的威胁与最好的防御 #### 关于XSS蠕虫和病毒的10条快速介绍 1. **来源广泛**:XSS蠕虫与病毒可能源自社区驱动的流行网站功能,例如社交网络、博客、用户评论、留言板、聊天室、网络...
- **示例**:2011年,中国知名社交媒体平台新浪微博遭遇了一次XSS蠕虫攻击,短短16分钟内就有近3.3万名用户受到影响。这一事件凸显了XSS攻击的威力及其对用户隐私和安全构成的巨大威胁。 #### 二、XSS攻击原理与...
一、什么是XSS攻击 XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如...
为了防止Little Doctor或其他XSS蠕虫的攻击,开发者和运维人员应采取以下措施: 1. **输入验证**:对所有用户提交的数据进行严格的过滤和转义,避免恶意脚本的注入。 2. **HTTP头部防护**:设置Content-Security-...
攻击者可以利用这些漏洞盗取用户的账号信息、窃取Cookie来冒充用户身份、劫持用户会话、刷流量、弹出广告,甚至传播蠕虫病毒。XSS攻击的破坏性不容小觑。 XSS漏洞通常分为三类: 1. 反射型XSS:这种类型的XSS是非...
第5章 XSS Worm,讲解了Web 2.0的最大威胁——跨站脚本蠕虫,剖析了Web 2.0相关概念和其核心技术,这些知识对于理解和预防XSS Worm十分重要。第6章 Flash应用安全,就当前的Flash应用安全做出了深入阐述。第7章 深入...
第5章 XSS Worm,讲解了Web 2.0的最大威胁——跨站脚本蠕虫,剖析了Web 2.0相关概念和其核心技术,这些知识对于理解和预防XSS Worm十分重要。第6章 Flash应用安全,就当前的Flash应用安全做出了深入阐述。第7章 深入...
在给定的部分内容中,提到了一种常见的XSS攻击实例——Yamanner蠕虫攻击。该攻击利用了Yahoo Mail的一个漏洞,当用户查看包含恶意JavaScript代码的邮件时,该代码会在用户的浏览器中执行。通过Ajax技术,病毒可以...
第5章 XSS Worm,讲解了Web 2.0的最大威胁——跨站脚本蠕虫,剖析了Web 2.0相关概念和其核心技术,这些知识对于理解和预防XSS Worm十分重要。第6章 Flash应用安全,就当前的Flash应用安全做出了深入阐述。第7章 深入...
攻击者还可以通过XSS攻击提升用户权限,进一步渗透网站,或者传播跨站脚本蠕虫等。 为了防御XSS攻击,网站开发者应当采取一系列预防措施。例如,对用户输入进行严格的验证和过滤,避免直接将用户输入内容嵌入到网页...
XSS攻击的危害包括修改网页内容、窃取Cookie、重定向网页、网站挂马/钓鱼以及XSS蠕虫等。XSS攻击的防御措施包括服务器端的预防,如输出编码htmlentities()、使用httponly、限制来源IP、输入验证(类型、长度、正则...
- **传播蠕虫病毒**:XSS攻击可以作为传播蠕虫病毒的手段之一。 #### 二、XSS分类 - **反射型XSS**: - **定义**:也称为非持久型或参数型跨站脚本攻击,是最常见的XSS类型之一。 - **特点**:通常出现在URL...
如2011年的短信诈骗、XSS蠕虫攻击以及大规模的个人信息泄露事件,这些都凸显了电子商务安全的重要性。 1.5 电子商务的安全技术及安全规范 为了应对这些威胁,电子商务采用了一系列安全技术,如加密技术(SSL/TLS)...
例如,2005年MySpace的XSS蠕虫事件就是一个典型的例子,它在短时间内感染了大量用户页面,展示了XSS攻击的破坏力。即使不涉及服务器权限,XSS也能用来盗取用户cookie、实施钓鱼攻击或者传播恶意代码。 **搜索框的...
**Yamanner蠕虫**:这是一个著名的XSS攻击案例,它利用了Yahoo Mail系统的一个漏洞,当用户在Web上查看邮件时,邮件内容中的JavaScript代码能够被执行。攻击者通过构造带有恶意脚本的邮件,一旦受害者打开这些邮件,...
11. 传播跨站脚本蠕虫:XSS蠕虫可以在用户之间自我复制,通过受感染的网站传播,扩大攻击面。 XSS攻击产生的主要原因在于: 1. 数据过滤不严:网站在处理用户输入时没有进行有效的过滤和转义,允许恶意脚本代码...
3. **XSS蠕虫**:XSS蠕虫可以通过自我复制并在用户之间传播,扩大攻击范围。 4. **客户端信息窃取**:攻击者可以获取用户浏览器中的敏感信息,例如正在浏览的电子邮件内容。 XSS漏洞通常分为三种类型: - **反射...