其他分享
首页 > 其他分享> > 特殊符号传到后端发生变异 & "<>

特殊符号传到后端发生变异 & "<>

作者:互联网

业务遇到bug,前端传回数据 & ,到后台接收到的数据就是 &amp;

 

 

后台接收到的数据就携带了amp;的后缀

 

网上查找原因,大部分说法是前端传回的数据导致,但是实际并不是,这里是框架的正则过滤,将'&' 替换成 '&amp;' 预防脚本攻击

解决方式

1.

StringEscapeUtils.unescapeHtml()

2.在框架层面进行处理

 public static String htmlSpecialChars(final String s) {
        String result = s;
        result = regexReplace(P_AMP, "&amp;", result);
        result = regexReplace(P_QUOTE, "&quot;", result);
        result = regexReplace(P_LEFT_ARROW, "&lt;", result);
        result = regexReplace(P_RIGHT_ARROW, "&gt;", result);
        return result;
    }

这里将对应的正则方式去掉

 

以上2中方式都能去除出现的后缀,但是都不建议使用,尽量避免关键字和关键符号在填写中出现

标签:gt,String,quot,传回,result,ARROW,amp,特殊符号,regexReplace
来源: https://www.cnblogs.com/king-dom/p/16228736.html