文档章节

在JAVA项目中关于XSS处理

程缘落笔
 程缘落笔
发布于 2017/05/24 10:21
字数 217
阅读 23
收藏 0

1.使用Spring MVC框架,继承BaseController时:

    /**
	 * 初始化数据绑定
	 * 1. 将所有传递进来的String进行HTML编码,防止XSS攻击
	 * 2. 将字段中Date类型转换为String类型
	 */
	@InitBinder
	protected void initBinder(WebDataBinder binder) {
		// String类型转换,将所有传递进来的String进行HTML编码,防止XSS攻击
		binder.registerCustomEditor(String.class, new PropertyEditorSupport() {
			@Override
			public void setAsText(String text) {
				setValue(text == null ? null : StringEscapeUtils.escapeHtml4(text.trim()));
			}
			@Override
			public String getAsText() {
				Object value = getValue();
				return value != null ? value.toString() : "";
			}
		});
		// Date 类型转换
		binder.registerCustomEditor(Date.class, new PropertyEditorSupport() {
			@Override
			public void setAsText(String text) {
				setValue(DateUtils.parseDate(text));
			}
		});
	}

2.强转

public static void  xmlSpecialCharConvert(Map<String,Object> map){
	String[] charArray = new String[]{"&","'","\"",">","<",""};	
	String[] convertArray = new String[]{"&amp;","&apos;","&quot;","&gt;","&lt;",""};	
	if(MapUtils.isNotEmpty(map)){
		Set<String> keys = map.keySet();
		for (String key : keys) {
			Object obj  = map.get(key);
			if(obj!=null && obj instanceof String){
				String str = ObjectUtils.toString(obj);
		        map.put(key,org.apache.commons.lang3.StringUtils.replaceEach(str, charArray, convertArray));
			}
		}
	}
}
public static void  xmlSpecialCharConvert(List<Map<String,Object>>... lists){
	for (List<Map<String, Object>> list : lists) {
		for (Map<String, Object> map : list) {
			xmlSpecialCharConvert(map);
		}
	}
 }

 

© 著作权归作者所有

共有 人打赏支持
程缘落笔
粉丝 2
博文 14
码字总数 3311
作品 0
广州
后端工程师
私信 提问
xms/xmx/xss在kette中的调优设置

kettle是使用java开发的,主要运行在jvm上,这样它的执行效率就和jvm的调优有关了,我在平时的使用中,主要是用kitchen.sh(其实其它的.sh也是一样的),在默认的情况下内存的使用配置是这样的...

sucre
2015/03/26
0
0
My java——JVM(内存)二

续 My java——JVM(java 虚拟机)一 http://my.oschina.net/mynote/blog/113572 这里继续对java做深入的理解。 从(一)中说明了JVM就等同于操作系统,我们在学习操作系统的时候就会理解内存...

tngou
2013/03/14
0
0
基于JVM原理、JMM模型和CPU缓存模型深入理解Java并发编程

许多以Java多线程开发为主题的技术书籍,都会把对Java虚拟机和Java内存模型的讲解,作为讲授Java并发编程开发的主要内容,有的还深入到计算机系统的内存、CPU、缓存等予以说明。实际上,在实...

leoliu168
11/08
0
0
【转】Java虚拟机(JVM)中的内存设置详解

在一些规模稍大的应用中,Java虚拟机(JVM)的内存设置尤为重要,想在项目中取得好的效率,GC(垃圾回收)的设置是第一步。 PermGen space:全称是Permanent Generation space.就是说是永久保...

mj4738
2011/11/02
0
0
Java虚拟机(JVM)中的内存设置详解

在一些规模稍大的应用中,Java虚拟机(JVM)的内存设置尤为重要,想在项目中取得好的效率,GC(垃圾回收)的设置是第一步。 PermGen space:全称是Permanent Generation space.就是说是永久保...

岩之有理
2015/01/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Confluence 6 教程:在 Confluence 中导航

当你对 Confluence 有所了解后,你会发现 Confluence 使用起来非常简单。这个教程主要是针对你使用的 Confluence 界面进行一些说明,同时向你展示在那里可以进行一些通用的任务和操作。 空间...

honeymose
38分钟前
2
0
sed, awk 练习

1. sed打印某行到某行之间的内容 2. sed 转换大小写 将单词首字母转化大写 将所有小写转化大写 3. sed 在某一行最后面添加一个数字 4. 删除某行到最后一行 解析: {:a;N;$!ba;d} :a : 是...

Fc丶
今天
2
0
babel6升级到7,jest-babel报错:Requires Babel "^7.0.0-0", but was loaded with "6.26.3".

自从将前端环境更新到babel7,jest-babel之前是基于babel6的,执行时候就会报:Requires Babel "^7.0.0-0", but was loaded with "6.26.3". 很烦,因为连续帮好几台电脑修复这个问题,所以记...

曾建凯
今天
1
0
探索802.11ax

802.11ax承诺在真实条件下改善峰值性能和最差情况。 如何改善今天的Wi-Fi? 在决定如何改进当前版本以外的Wi-Fi时,802.11ac,IEEE和Wi-Fi联盟调查了Wi-Fi部署和行为,以确定更广泛使用的障碍...

linuxprobe16
今天
2
0
使用linux将64G的SDCARD格式化为FAT32

一、命令如下: sudo fdisk -lsudo mkfs.vfat /dev/sda -Isudo fdisk /dev/sda Welcome to fdisk (util-linux 2.29.2). Changes will remain in memory only, until you decide to wri......

mbzhong
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部