===========================问题描述========================
跨站脚本注入的几种形式
*****="/><script>alert(document.cookie)</script>&passwd=&ok.x=28&ok.y=6
******="/><script>window.open("http://www.baidu.com")</script>
/document/ifr_list_managerHalfway.jsp?subFrame=managerHalfway&Page=2&Pages=2&Count=15&docsfrom="/><script>window.open("http://www.baidu.com")</script>
document/ifr_list_managerHalfway.jsp?docucode=&organiger=&manageEntityId=&Page=1&queryOwn=0&procstatus=&docsfrom=5&subFrame=managerHalfway&docsfrom=5&beginDate=&cbt=&procid=&cfwdw=&wenhao=%5C0%5C%22%5C%27%3E%3CScRiPt%3Ealert%28/shtec%2Bxss%2Btest/%29%3B%3C/ScRiPt%3E
document/ifr_list_managerHalfway.jsp?docucode=&organiger=&manageEntityId=&Page=1&queryOwn=0&procstatus=&docsfrom=5&subFrame=managerHalfway&docsfrom=5&beginDate=&cbt=&procid=&cfwdw="/><script>window.open("http://www.baidu.com")</script>&wenhao="/><script>window.open("http://www.baidu.com")</script>
以上的几种跨站点脚本注入会使页面非正常显示
===========================解决方案========================
1。增加一个request的转码过滤器=======================
package com.apusic.portal.sso;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.*;
import java.util.*;
/**
* Servlet Filter implementation class SqlEscapeFilter
*/
public class SqlEscapeFilter implements Filter {
/**
* Default constructor.
*/
public SqlEscapeFilter() {
// TODO Auto-generated constructor stub
}
/**
* @see Filter#destroy()
*/
public void destroy() {
// TODO Auto-generated method stub
}
/**
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
// place your code here
HttpServletRequest hreq = (HttpServletRequest)request;
Map map = hreq.getParameterMap();
Iterator itr = map.keySet().iterator();
while( itr.hasNext() )
{
String key = itr.next().toString();
String [] values = hreq.getParameterValues(key);
if( values != null )
{
for( int i = 0; i < values.length; i++ )
{
values[i] = cleanXSS(values[i]);
}
}
hreq.setAttribute(key, values);
}
// pass the request along the filter chain
chain.doFilter(request, response);
}
/**
* @see Filter#init(FilterConfig)
*/
public void init(FilterConfig fConfig) throws ServletException {
// TODO Auto-generated method stub
}
private String cleanXSS(String value)
{
value = value.replaceAll("<", "& lt;").replaceAll(">", "& gt;");
value = value.replaceAll("\\(", "& #40;").replaceAll("\\)", ")");
value = value.replaceAll("'", "& #39;");
value = value.replaceAll("eval\\((.*)\\)", "");
value = value.replaceAll("[\\\"\\\'][\\s]*javascript:(.*)[\\\"\\\']", "\"\"");
value = value.replaceAll("script", "");
return value;
}
}
2================================
web.xml
<filter>
<display-name>SqlEscapeFilter</display-name>
<filter-name>SqlEscapeFilter</filter-name>
<filter-class>com.apusic.portal.sso.SqlEscapeFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SqlEscapeFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
分享到:
相关推荐
### XSS跨站脚本攻击详解 #### 一、XSS攻击概述 XSS攻击,全称为**跨站脚本攻击**(Cross Site Scripting),是一种常见的网络安全漏洞,它发生在Web应用程序未能正确过滤用户输入的数据时。攻击者可以借此机会将...
### XSS跨站脚本攻击详解 #### 一、XSS跨站脚本攻击概述 XSS(Cross-Site Scripting)跨站脚本攻击是一种常见的Web应用安全威胁,其核心在于利用网站对用户输入数据的处理不当,允许攻击者注入恶意脚本到网页中,...
**XSS跨站脚本攻击详解** XSS(Cross Site Scripting)跨站脚本攻击是一种常见的网络安全漏洞,它允许攻击者在用户浏览器上执行恶意脚本,从而获取敏感信息或者操控用户的行为。这种攻击主要发生在Web应用中,攻击...
### 跨站脚本(XSS)详解 #### 一、跨站脚本(XSS)概述 跨站脚本(Cross-Site Scripting,简称XSS)是一种常见的网站安全漏洞,攻击者通过注入恶意脚本代码到信任的网页上,当用户浏览该网页时,嵌入其中的恶意脚本会...
### XSS跨站脚本攻击详解 #### 一、XSS跨站脚本攻击概述 XSS(Cross-Site Scripting),即跨站脚本攻击,是一种常见的网络安全威胁,主要通过在受害者的浏览器环境中注入恶意脚本,从而实现对用户的攻击。这种攻击...
【XSS跨站脚本攻击】详解 XSS(Cross-Site Scripting)跨站脚本攻击是网络攻防领域中的常见威胁,攻击者利用这种技术向网页中注入恶意脚本,进而对用户的信息安全构成严重风险。由于浏览器通常无法区分合法与恶意...
XSS攻击的核心在于将恶意脚本注入到正常的数据流中,并通过某种途径让用户触发执行这些恶意脚本。根据攻击方式的不同,XSS攻击可以分为三类: 1. **存储型XSS**:攻击者将恶意脚本保存在服务器端,一旦用户访问被...
### SQL注入测试脚本知识点详解 #### 一、SQL注入简介 SQL注入是一种常见的Web应用程序安全漏洞,攻击者可以通过在应用程序的输入字段中插入恶意SQL语句来操纵数据库执行非授权操作。为了检测和防范此类攻击,渗透...
4. XSS(跨站脚本)注入:XSS攻击发生在Web应用中,恶意脚本被嵌入到其他用户可以查看的页面上。这可能用于盗取用户的Cookie、会话信息,或者进行钓鱼攻击。 5. XXE(XML外部实体注入):当应用程序解析不受信任的...
1. **输入验证和过滤**:PHP脚本容易受到SQL注入、跨站脚本(XSS)等攻击。通过使用预处理语句、参数绑定(例如PDO和mysqli扩展)以及过滤函数(如filter_var)可以有效防止SQL注入。对于XSS攻击,可以利用...
SQL注入是网络安全领域中的一种常见的攻击手段,它允许攻击者通过在应用程序的输入参数中插入恶意的SQL代码片段,从而在数据库服务器上执行未授权的查询或操作。这种攻击方法对数据库安全构成了极大的威胁,因此了解...
XSS攻击,全称为跨站脚本攻击(Cross-Site Scripting),是一种常见的网络攻击手段,它允许攻击者将恶意脚本代码注入到用户浏览器中。这些代码在用户浏览网页时执行,可以盗取cookie、会话令牌、或者在用户不知情的...
2. 跨站脚本攻击(XSS):攻击者在用户界面插入恶意脚本,使得其他用户在访问时执行这些脚本,可能导致信息泄露或身份冒用。 3. 文件包含漏洞:通过构造特定参数,使服务器执行非预期的文件,可能导致系统敏感信息泄露...
### XSS跨站攻击详解与注入代码实例 #### 一、XSS概述 XSS(Cross Site Scripting)即跨站脚本攻击,是一种常见的Web安全漏洞。它通过将恶意脚本注入到看似可信的网站中,进而攻击最终用户。XSS攻击主要分为三种...
这个工具可能包括了注入攻击的模拟脚本,也可能有用于检测和防止注入的安全脚本。 综上所述,这个教程和脚本集应该帮助学习者理解Cookie注入的机制,包括如何利用和防止。在学习过程中,他们将接触到PHP 5的语法,...
ASP(Active Server Pages)是一种微软开发的服务器端脚本环境,用于创建动态网页或Web应用程序。SQL注入是一种常见的网络安全漏洞,攻击者通过输入恶意的SQL语句来获取、修改、删除数据库中的敏感信息,或者控制...
此外,实验还涵盖了如何通过特定的页面设计和JavaScript代码实现跨站脚本攻击,以及如何利用跨站脚本盗取cookies。例如,通过使用`window.frames[0]`和`location`属性来控制子页面的行为,从而注入并执行恶意脚本,...
三种数据库的 SQL 注入详解 SQL 注入是指攻击者通过构建特殊的输入作为参数传入 Web 应用程序,而这些输入大都是 SQL 语法里的组合,通过执行 SQL 语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤...