package com.shlanbao.tzsc.utils.extents; import java.beans.PropertyEditorSupport; import org.springframework.web.util.HtmlUtils; import org.springframework.web.util.JavaScriptUtils; /** * 与spring mvc的@InitBinder结合 * * 用于防止XSS攻击 * * @author 孙宇 * */ public class StringEscapeEditor extends PropertyEditorSupport { private boolean escapeHTML;// 编码HTML private boolean escapeJavaScript;// 编码javascript public StringEscapeEditor() { super(); } public StringEscapeEditor(boolean escapeHTML, boolean escapeJavaScript) { super(); this.escapeHTML = escapeHTML; this.escapeJavaScript = escapeJavaScript; } @Override public String getAsText() { Object value = getValue(); return value != null ? value.toString() : ""; } @Override public void setAsText(String text) throws IllegalArgumentException { if (text == null) { setValue(null); } else { String value = text; if (escapeHTML) { value = HtmlUtils.htmlEscape(value); } if (escapeJavaScript) { value = JavaScriptUtils.javaScriptEscape(value); } setValue(value); } } }