有什么比较简单的方法 能防止html标签注入和数据库注入?

有什么比较简单的方法能防止html标签注入和数据库注入?JSP编写的网站,有论坛功能。不知道怎么防。。帮帮我帮帮我就是看不太懂filter才。。。。。。。。。。。。。。。... 有什么比较简单的方法 能防止html标签注入和数据库注入?

JSP编写的网站,有论坛功能。不知道怎么防。。帮帮我 帮帮我
就是看不太懂filter 才。。。。。。。。。。。。。。。
展开
 我来答
久爱网络
2015-12-10 · 知道合伙人互联网行家
久爱网络
知道合伙人互联网行家
采纳数:645 获赞数:3980
专精网站设计、排名优化、小程序开发、公众号功能开发等IT技术

向TA提问 私信TA
展开全部
一,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;
}
三、专业的事情交给专业的工具去做。
安装安全软件。例如,在服务器中安装“服务器安全狗”,可以设置防注入,防攻击的设置,只要设置好安全规则,就可以屏蔽大多数攻击入侵。
bill76554792
2010-07-06 · TA获得超过954个赞
知道小有建树答主
回答量:723
采纳率:50%
帮助的人:593万
展开全部
防html注入很容易,就是把<和>转换成<和>就行。用String的replaceAll函数来替换。
放sql注入的话,可以用java的参数化来实现,就是用prepareStatement这个类来实现的。参考
http://blog.csdn.net/spcusa/archive/2009/05/09/4164076.aspx
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
DLALD水瓶
2019-02-24
知道答主
回答量:6
采纳率:0%
帮助的人:4031
展开全部
刚刚看到的html注入,java中有现成的方法可用,HtmlUtils.htmlEscape("用户输入的话");

这样就行了,如有错误请大神指点.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
harkeney
2010-07-06 · TA获得超过893个赞
知道小有建树答主
回答量:875
采纳率:0%
帮助的人:619万
展开全部
filter?

哪个地方看不懂?你在dofilter里面把request给拆开来看嘛,他发的内容全在request里面,看见自己不喜欢的字符就直接把请求转到警告页面。filter最方便啊,因为所有的request最初都要经过filter
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sokoo108
2010-07-05 · TA获得超过470个赞
知道小有建树答主
回答量:481
采纳率:0%
帮助的人:381万
展开全部
用 prepareStatement方法,详情查java doc,或 google
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式