特殊符号传到后端发生变异 & "<>
作者:互联网
业务遇到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中方式都能去除出现的后缀,但是都不建议使用,尽量避免关键字和关键符号在填写中出现
标签:gt,String,quot,传回,result,ARROW,amp,特殊符号,regexReplace 来源: https://www.cnblogs.com/king-dom/p/16228736.html