Spring mvc 防止XSS

直接上代码

@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() : "";
            }
        });
    }

上面的方法可以放在BaseController 让你的Controller 去继承。里面用到commons-lang3 里面StringEscapeUtils方法进行转义。

报错的话,pom.xml加入commons-lang3

<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-lang3.version}</version>
</dependency>

 

 
posted @ 2015-07-28 20:29  ours  阅读(1932)  评论(0编辑  收藏  举报