如何防止html注入

html-css09

如何防止html注入,第1张

HTML防注入。

一般的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