关于web XSS注入问题
对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,附带公司写的一个filer。
对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避免后知后觉的犯下大错,专门参考大量前辈们的心得,小小的总结一下,欢迎各位大神提点提点
1.跨站脚本攻击(XSS)
跨站脚本攻击的原理:
XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意脚本代码,而程序对于用户输入内容未过滤,当用户浏览该页之时,嵌入其中Web里面的脚本代码会被执行,从而达到恶意攻击用户的特殊目的。
跨站脚本攻击的危害:窃取cookie、放蠕虫、网站钓鱼 ...
跨站脚本攻击的分类主要有:存储型XSS、反射型XSS、DOM型XSS
XSS漏洞是Web应用程序中最常见的漏洞之一。如果您的站点没有预防XSS漏洞的固定方法,那么就存在XSS漏洞。这个利用XSS漏洞的病毒之所以具有重要意义是因为,通常难以看到XSS漏洞的威胁,而该病毒则将其发挥得淋漓尽致。
XSS工作流程
1)恶意用户,在一些公共区域(例如,建议提交表单或消息公共板的输入表单)输入一些文本,这些文本被其它用户看到,但这些文本不仅仅是他们要输入的文本,同时还包括一些可以在客户端执行的脚本。如:
public class XSSFilter implements Filter {
 // XSS处理Map
	private static Map<String,String> xssMap = new LinkedHashMap<String,String>();
	
	@Override
	public void destroy() {
	}
	@Override
	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		HttpServletRequest httpReq = (HttpServletRequest)request;
		// 构造HttpRequestWrapper对象处理XSS
		HttpRequestWrapper httpReqWarp = new HttpRequestWrapper(httpReq,xssMap);
		chain.doFilter(httpReqWarp, response);
	}
	@Override
	public void init(FilterConfig arg0) throws ServletException 
	{
		// 含有脚本: script
		xssMap.put("[s|S][c|C][r|R][i|C][p|P][t|T]", "");
		// 含有脚本 javascript
		xssMap.put("[\\\"\\\'][\\s]*[j|J][a|A][v|V][a|A][s|S][c|C][r|R][i|I][p|P][t|T]:(.*)[\\\"\\\']", "\"\"");
		// 含有函数: eval
		xssMap.put("[e|E][v|V][a|A][l|L]\\((.*)\\)", "");
		// 含有符号 <
		xssMap.put("<", "<");
		// 含有符号 >
		xssMap.put(">", ">");
		// 含有符号 (
		xssMap.put("\\(", "(");
		// 含有符号 )
		xssMap.put("\\)", ")");
		// 含有符号 '
		xssMap.put("'", "'");
		// 含有符号 "
		xssMap.put("\"", "");
		
		/**特殊字符URL编码没有对其进行转码*/
		xssMap.put("%", "%25");
		xssMap.put("#", "%23");
		xssMap.put("\\+", "%2B");
	}
}
web.xml 代码如下:
 <filter>
	  <filter-name>XSSFilter</filter-name>
	  <filter-class>com.autrade.webstage.filter.XSSFilter</filter-class>
  </filter>
  <filter-mapping>
	  <filter-name>XSSFilter</filter-name>
	  <url-pattern>/*</url-pattern>
  </filter-mapping>
                    
                
                
            
        
浙公网安备 33010602011771号