博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java简单的XSS过滤方法
阅读量:3905 次
发布时间:2019-05-23

本文共 1347 字,大约阅读时间需要 4 分钟。

Java简单的XSS过滤方法


在这里插入图片描述

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

import java.io.UnsupportedEncodingException;import java.net.URLDecoder;public class Xss {	public static void main(String[] args) {		//经过编码后的XSS-Payload,		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();	}}
你可能感兴趣的文章
位图(BitMap)&& 布隆过滤器(BloomFilter)
查看>>
总结: 笔试中常见virtual函数问题
查看>>
vue中使用mock模拟后端数据
查看>>
常见的数据库有哪几种?
查看>>
Java后端的SQL语句
查看>>
注意:eclipse使用自己的编译器
查看>>
Class对象的获取方法
查看>>
URI与URL的区别
查看>>
关于鼓励、加油的英语句子
查看>>
AWT事件的继承关系图
查看>>
设计模式之迭代器(Iterator Pattern)-笔记
查看>>
Python入门(P_SDK的安装与使用)
查看>>
为什么XML文档的格式是否规范如此重要呢?为何W3C规定XML处理器不应尝试修复不规范的文档
查看>>
编写高效的Android代码
查看>>
位运算符的使用总结(编辑网络的资源)
查看>>
RMS使用时要注要的地方
查看>>
android简单demo学习系例之菜单实现
查看>>
显示python库路径
查看>>
android简单demo学习系例之排版(LinearLayout)[xml-based]
查看>>
J2ME相关的开源项目
查看>>