如何防止html注入

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

注入攻击风险:

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

潜在的风险包括:

存储数据的丢失/被盗。

数据库损坏(S)。

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

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

注入攻击策略:

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

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

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

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

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

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

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

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

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

三种方式:

一,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)

二、防SQL注入

最简单最容易的是限制用户输入。

简单点的就是不允许用户输入单引号 和 --,因为单引号号--在SQL中都是影响执行的。

但SQL注入是多方面的,防止的方法也有很多种。

1、地址栏禁止特殊字符防SQL注入

把特殊字符(如and、or、'、")都禁止提交就可以防止注入了。

2、php过滤html字符串,防止SQL注入

批量过滤post,get敏感数据

$_GET = stripslashes_array($_GET)

$_POST = stripslashes_array($_POST)

数据过滤函数

function stripslashes_array(&$array) {

while(list($key,$var) = each($array)) {

if ($key != 'argc' &&$key != 'argv' &&(strtoupper($key) != $key || ''.intval($key) == "$key")) {

if (is_string($var)) {

$array[$key] = stripslashes($var)

}

if (is_array($var)) {

$array[$key] = stripslashes_array($var)

}

}

}

return $array

}

3、替换HTML尾标签

function lib_replace_end_tag($str)

{

if (empty($str)) return false

$str = htmlspecialchars($str)

$str = str_replace( '/', "", $str)

$str = str_replace("\\", "", $str)

$str = str_replace(">", "", $str)

$str = str_replace("<", "", $str)

$str = str_replace("<SCRIPT>", "", $str)

$str = str_replace("</SCRIPT>", "", $str)

$str = str_replace("<script>", "", $str)

$str = str_replace("</script>", "", $str)

$str=str_replace("select","select",$str)

$str=str_replace("join","join",$str)

$str=str_replace("union","union",$str)

$str=str_replace("where","where",$str)

$str=str_replace("insert","insert",$str)

$str=str_replace("delete","delete",$str)

$str=str_replace("update","update",$str)

$str=str_replace("like","like",$str)

$str=str_replace("drop","drop",$str)

$str=str_replace("create","create",$str)

$str=str_replace("modify","modify",$str)

$str=str_replace("rename","rename",$str)

$str=str_replace("alter","alter",$str)

$str=str_replace("cas","cast",$str)

$str=str_replace("&","&",$str)

$str=str_replace(">",">",$str)

$str=str_replace("<","<",$str)

$str=str_replace(" ",chr(32),$str)

$str=str_replace(" ",chr(9),$str)

$str=str_replace(" ",chr(9),$str)

$str=str_replace("&",chr(34),$str)

$str=str_replace("'",chr(39),$str)

$str=str_replace("<br />",chr(13),$str)

$str=str_replace("''","'",$str)

$str=str_replace("css","'",$str)

$str=str_replace("CSS","'",$str)

return $str

}

三、专业的事情交给专业的工具去做。

安装安全软件。例如,在服务器中安装“服务器安全狗”,可以设置防注入,防攻击的设置,只要设置好安全规则,就可以屏蔽大多数攻击入侵。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7305252.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存