Java简单的XSS过滤方法

Java简单的XSS过滤方法


在这里插入图片描述
因为某甲方程序XSS过滤类一直没起作用,所以百度了下,简单的写了个参数XSS过滤方法。。。。。上代码~~

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;

public class Xss {

	public static void main(String[] args) {
		//经过编码后的XSS-Payload,<script>alert("xss");</script>
		String reqParam = "%3C%73%63%72%69%70%74%3E%61%6C%65%72%74%28%22%78%73%73%22%29%3B%3C%2F%73%63%72%69%70%74%3E";
		
		try {
			//解码后的新参数
			String newParam = URLDecoder.decode(reqParam,"UTF-8");
			//调用XSS过滤方法进行过滤后输出
			System.out.println(xssEncode(newParam));
			
		} catch (UnsupportedEncodingException e) {
			// 异常处理
			e.printStackTrace();
		}
		
		

	}
		
		private static String xssEncode(String s) {
			//XSS静态过滤方法
			if (s == null || s.isEmpty()) {
				return s;
			}
			StringBuilder sb = new StringBuilder(s.length() + 16);
			for (int i = 0; i < s.length(); i++) {
				char c = s.charAt(i);
				switch (c) {
				case '>':
					sb.append('>');// 全角大于号
					break;
				case '<':
					sb.append('<');// 全角小于号
					break;
				case '\'':
					sb.append('‘');// 全角单引号
					break;
				case '\"':
					sb.append('“');// 全角双引号
					break;
				case '&':
					sb.append('&');// 全角
					break;
				case '\\':
					sb.append('\');// 全角斜线
					break;
				case '#':
					sb.append('#');// 全角井号
					break;
				case '(':
					sb.append('(');//
					break;
				case ')':
					sb.append(')');//
					break;
				default:
					sb.append(c);
					break;
				}
			}
			return sb.toString();


	}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值