如何防止html注入

html-css012

如何防止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

}

要达到你说的效果就用第一个函数. 第二个函数是反转义的.

注入攻击风险:

取决于类型和注射攻击的严重性,同类型的注射剂包括HTML,SQL,XML,LDAP和操作系统命令。

潜在的风险包括:

存储数据的丢失/被盗。

数据库损坏(S)。

通过网络钓鱼的用户信息被盗。

系统停机时间,损失的生产力。

注入攻击策略:

输入解释的内容直接为我们上面看到的只是一个命令传递给一个解释的方式。

为了引起缓冲区溢出进入超出范围或预期值。

留下的空白领域,试图导致错误。

从Web服务的响应修改(MAN-上这方面的中间人攻击)。

通过蓝牙,近场通信(NFC)等数据注入。

写代码来净化输入数据,因为有很多的HTML消毒剂可用的功能和库的JavaScript和服务器语言的一致好评。

注意:防止注入攻击,需要在几个方面同时警惕。

用户输入验证是一个关键的领域,因为永远不能信任用户输入唯一合法的数据。

通过包括适当的验证,很大的通过用户界面或人在中间人攻击减少了注入攻击的可能性。