spring mvc xss html,spring mvc 过滤跨站(XSS)的一个方法

spring mvc 过滤跨站的一个方法

XSS 是我们在工作中经常遇到的东西。让每个开发者都注意到这块的东西很不容易。很多开发者都不知道 什么是 XSS;

对于这块的防护。我们一般都是用一个全局过滤器来处理 request 信息,挨个遍历替换处理危险内容。然后再保存到数据库。

这样的实现网上有很多例子。

下面我这针对spring mvc 过滤xss分享的一个小方法。。

方法出处 stackoverflow

在我们使用springmvc的时候,我们可以自定义一个 property editor 通过这个编辑器,我们可以过滤接收到字符串的危险信息。将这个editor 放到 BaseController 然后需要过滤的Controller 直接继承这个 BaseController 就ok;

这是我们的 editor 代码:

@Override

protected void initBinder(HttpServletRequest request,

ServletRequestDataBinder binder) throws Exception {

super.initBinder(request, binder);

binder.registerCustomEditor(String.class,

new StringEscapeEditor(true, true, false));

}

然后是 StringEscapeEditor 的实现

public class StringEscapeEditor extends PropertyEditorSupport {

private boolean escapeHTML;

private boolean escapeJavaScript;

private boolean escapeSQL;

public StringEscapeEditor() {

super();

}

public StringEscapeEditor(boolean escapeHTML, boolean escapeJavaScript,

boolean escapeSQL) {

super();

this.escapeHTML = escapeHTML;

this.escapeJavaScript = escapeJavaScript;

this.escapeSQL = escapeSQL;

}

public void setAsText(String text) {

if (text == null) {

setValue(null);

} else {

String value = text;

if (escapeHTML) {

value = StringEscapeUtils.escapeHtml(value);

}

if (escapeJavaScript) {

value = StringEscapeUtils.escapeJavaScript(value);

}

if (escapeSQL) {

value = StringEscapeUtils.escapeSql(value);

}

setValue(value);

}

}

public String getAsText() {

Object value = getValue();

return (value != null ? value.toString() : "");

}

}

这样就可以过滤掉非法字符串了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值