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

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

 

 

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

 

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

解决方式

1.

StringEscapeUtils.unescapeHtml()

2.在框架层面进行处理

 public static String htmlSpecialChars(final String s) {
        String result = s;
        result = regexReplace(P_AMP, "&", result);
        result = regexReplace(P_QUOTE, """, result);
        result = regexReplace(P_LEFT_ARROW, "<", result);
        result = regexReplace(P_RIGHT_ARROW, ">", result);
        return result;
    }

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

 

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

posted @ 2022-05-06 14:54  贾斯丁哔哔  阅读(2182)  评论(0编辑  收藏  举报