在JAVA项目中关于XSS处理
在JAVA项目中关于XSS处理
程缘落笔 发表于5个月前
在JAVA项目中关于XSS处理
  • 发表于 5个月前
  • 阅读 3
  • 收藏 0
  • 点赞 0
  • 评论 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);
		}
	}
 }

 

标签: java xss
共有 人打赏支持
粉丝 2
博文 9
码字总数 2789
×
程缘落笔
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: