一般的html注入都是在字符串中加入了html标签,用下JAVA代码可以去掉这部分代码。
代码如下,自己封装成方法即可。
String msge = "asdasdasdasd <div id=\"f\">asdfsdf"
System.out.println(msge)
msge = msge.replace("&", "&")
msge = msge.replace("<", "<")
msge = msge.replace(" ", " ")
msge = msge.replace(">", ">")
msge = msge.replace("\"", """)
msge = msge.replace("'", "&qpos")
System.out.println(msge)
将标签的<>这个尖角符号替换掉就可以了.这里有2个函数, 可以进行转义的.你参考一下:function html_encode(str)
{
var s = ""
if (str.length == 0) return ""
s = str.replace(/&/g, ">")
s = s.replace(/</g, "<")
s = s.replace(/>/g, ">")
s = s.replace(/ /g, " ")
s = s.replace(/\'/g, "'")
s = s.replace(/\"/g, """)
s = s.replace(/\n/g, "<br>")
return s
}
function html_decode(str)
{
var s = ""
if (str.length == 0) return ""
s = str.replace(/>/g, "&")
s = s.replace(/</g, "<")
s = s.replace(/>/g, ">")
s = s.replace(/ /g, " ")
s = s.replace(/'/g, "\'")
s = s.replace(/"/g, "\"")
s = s.replace(/<br>/g, "\n")
return s
}
要达到你说的效果就用第一个函数. 第二个函数是反转义的.
filter?哪个地方看不懂?你在dofilter里面把request给拆开来看嘛,他发的内容全在request里面,看见自己不喜欢的字符就直接把请求转到警告页面。filter最方便啊,因为所有的request最初都要经过filter
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)