文档章节

在JAVA项目中关于XSS处理

程缘落笔
 程缘落笔
发布于 2017/05/24 10:21
字数 217
阅读 25
收藏 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
广州
后端工程师
私信 提问
关于JVM中内存的问题

JVM中的内存模型包括:java堆,虚拟机栈,本地方法栈,方法区,程序计数器。 我们可以通过-Xmx,-Xms来设置java堆大小,通过-Xss来设置栈大小,通过设置-XX:PermSize和-XX:MaxPermSize来设置方...

王大叔爱编程
2014/10/15
152
3
xms/xmx/xss在kette中的调优设置

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

sucre
2015/03/26
0
0
Java 库:为 Java 程序员而生的 10 + 最佳库

众所周知,Java 的生态环境相当庞大,包含了数量相当可观的官方及第三方库。利用这些库,可以解决在用 Java 开发时遇到的各类问题,让开发效率得到显著提升。 举些例子,最常用的官方库有 ja...

noeticforce
2017/06/29
10.1K
15
2012 版猥琐获得 httponly cookie 权限教程

背景介绍 - 过去 第一次尝试获取到 HttpOnly cookie是通过XST (Cross Site Tracing:跨站跟踪)漏洞. 不久之后开始普及XST,再之后, 浏览器还在XMLHttpRequest中封锁了TRACE方法 (i.e. xmlhttp....

蟋蟀哥哥
2013/01/31
9.5K
17
Java 9 – 终极特性列表

本文会根据针对即将发布的Java 9新特性做同步更新(最后更新:9/9/2014) 加快OpenJDK的开发速度: 继2014年3月份发布了Java 8之后,我们进入下一个两年的发布周期. Java 9预计在2016年发布,并且已...

oschina
2014/09/13
52.2K
54

没有更多内容

加载失败,请刷新页面

加载更多

TiDB 3.0 Beta Release Notes

2019 年 1 月 19 日,TiDB 发布 3.0 Beta 版,对应 master branch 的 TiDB-Ansible。相比 2.1 版本,该版本对系统稳定性、优化器、统计信息以及执行引擎做了很多改进。 TiDB 新特性 支持 Vi...

TiDB
11分钟前
2
0
从拼多多优惠券事件看到的一些反思

本文由云+社区发表 作者:颜国平 摘要:最近几年,电商行业飞速发展,各种创业公司犹如雨后春笋大量涌现,商家通过各种活动形式的补贴来获取用户、培养用户的消费习惯,即将到来的“ 购物狂欢...

腾讯云加社区
12分钟前
3
0
记录一次BUG

1: 请求注册页面时生成一个UUID, 并且将UUID隐藏在页面中并且添加到session中去。 2: 发送短信时获取手机号和UUID,将两者发送至服务器 3: 先判断UUID和session中UUID是否一致。 不一致就...

专业写BUG的程序员
17分钟前
1
0
阿里云漏洞提示:phpMyAdmin <=4.8.1 checkPageValidity函数缺陷可导致GETSHELL

如题: phpMyAdmin <=4.8.1 后台checkPageValidity函数缺陷可导致GETSHELL 即:checkPageValidity函数对外部输入过滤不严,可导致本地包含任意文件。进一步地攻击者可通过注入代码到特定文件...

408582708
17分钟前
1
0
PyTorch可视化理解卷积神经网络

摘要: 神经网络工具像一个黑匣子,无法知道它的中间是如何处理的。本文使用图片加代码的形式讲解CNN网络,并对每层的输出进行可视化,便于初学者理解,可以动手实践下哦! 如今,机器已经能...

阿里云官方博客
29分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部