导航:首页 > 净水问答 > jsp防注入过滤代码

jsp防注入过滤代码

发布时间:2021-03-04 09:45:09

『壹』 有什么比较简单的方法 能防止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;
}
三、专业的事情交给专业的工具去做。
安装安全软件。例如,在服务器中安装“服务器安全狗”,可以设置防注入,防攻击的设置,只要设置好安全规则,就可以屏蔽大多数攻击入侵。

『贰』 JSP防注入过滤代码,网上找的但不能用,谁帮忙改下或给个能用的。ORZ~

先把js和jsp弄清楚再说吧

『叁』 Java-JSP网站 防SQL注入,防XSS等攻击有什么好的处理办法

现在的持久层框架都有防止sql注入的功能。xxs一般都是转义关键字。

『肆』 jsp 实现防止SQL注入时,当数据库获取的密码与表单获取的密码进行比较,时,出现的问题!

rs.getString(1)些方法执行的时候 ,已经把数据取出来了,你再次执行rs.getString(1)的时候,是取内的下一条数据。

比如你的容数据是: 123 321
每次用rs.getString(1)的时候是123,再次用的时候是321,如果只有一条数据 的时候 ,就是null咯

有问题hi我

『伍』 JSP网站如何防范SQL注入攻击

|2、正则表达式 2.1、检测SQL meta-characters的正则表达式 /(\%27)|(\')|(\-\-)|(\%23)|(#)/ix 2.2、修正检测SQL meta-characters的正则表达式 /((\%3D)|(=))[^\n]*((\%27)|(\')|(\-\-) 54ne.com |(\%3B)|(:))/i 2.3、典型的 SQL 注入攻击的正则表达式 /\w*((\%27)|(\'))((\%6F)|o|(\%4F))((\%72)|r|(\ 中国网管联盟 %52))/ix 2.4、检测SQL注入,UNION查询关键字的正则表达式 /((\%27)|(\'))union/ix(\%27)|(\') - 单 引号和它的hex等值 union - union关键字。 2.5、检测MS SQL Server SQL注入攻击的正则表达式 /exec(\s|\+)+(s|x)p\w+/ix 3、字符串过滤 public static String filterContent(String content){ String flt ="'|and|exec|insert|select|delete|update|count|*|% |chr|mid|master|truncate|char|declare|; |or|-|+|,"; Stringfilter[] = flt.split("|"); for(int i=0; i { content.replace(filter[i], ""); } return content; } 4、不安全字符屏蔽 本部分采用js来屏蔽,起的作用很小,这样用屏蔽关键字的方法虽然有一定作用,但是在实际应用中这些 SQL的关键字也可能成为真正的查询关键字,到那是被你屏蔽了那用户不是不能正常的使用了。 只要在代码规范上下点功夫就可以了。 功能介绍:检查是否含有"'","\\","/" 参数说明:要检查的字符串 返回值:0:是 1:不是 函数名是 function check(a) { return 1; fibdn = new Array ("'" ,"\\","/"); i=fibdn.length; j=a.length; for (ii=0; ii { for (jj=0; jj { temp1=a.charAt(jj); temp2=fibdn[ii]; if (tem'; p1==temp2) { return 0; } } } return 1; }

『陆』 jsp 过滤器过滤jsp和html怎么写

<servlet-mapping>
<servlet-name>servletname</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>servletname</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>

『柒』 jsp怎样写防sql注入。就是注册的时候不能输入<input type="">这样的东西

所谓sql注入,给你一个来例子源
一般代码里写登录校验
"select * from uesrtable where usename = '"+aaa+"' and other = '"+bbb+"''';aaa是前台人家输入的参数,如果不加处理,就可能被注入,因为SQL在执行的之后 ‘--’表示忽略以后的SQL语句,如果aaa参数是
“' or 1=1 --”那么最后SQL就会拼成select * from uesrtable where usename = '' or 1=1 --' and other =...... “--”之后的SQL语句会被忽略掉,在数据库里执行也不出错,这样就必定能找到第1条记录,就100%成功校验了(实际为select * from uesrtable where usename = '' or 1=1,等同不加任何where条件)
给你一个简单的解决方法,能解决大部分注入:对字符串处理,如果非空,则把所有的单引号替换成双引号

『捌』 java web如何防止html,js注入

在java Web体系中,可以写自定义标签,过滤用户输入,也可以写一个filter过滤器。比如说自定义标签。

开发步骤:

1 写一个标签处理类

2在/WEB-INF/目录下,写一个*.tld文件,目的是让Web容器知道自定义标签和标签处理类的对应关系

3 在JSP页面中,通过<%@taglib%>指令引用标签库.

4 部署web应用,访问simple.jsp即可

其中,标签处理类可以这样写,转义大于号,小于号等特殊符号。

packagecn.itcast.web.jsp.tag;

importjava.io.IOException;
importjava.io.StringWriter;

importjavax.servlet.jsp.JspException;
importjavax.servlet.jsp.PageContext;
importjavax.servlet.jsp.tagext.JspFragment;
importjavax.servlet.jsp.tagext.SimpleTagSupport;

//<simple:filter>标签处理类
{
publicvoiddoTag()throwsJspException,IOException{
JspFragmentjspFragment=this.getJspBody();
StringWriterwriter=newStringWriter();
jspFragment.invoke(writer);
Stringtemp=writer.getBuffer().toString();
//结果必定是转义后的字符串
temp=filter(temp);
PageContextpageContext=(PageContext)this.getJspContext();
pageContext.getOut().write(temp);
}
publicStringfilter(Stringmessage){
if(message==null)
return(null);
charcontent[]=newchar[message.length()];
message.getChars(0,message.length(),content,0);
StringBufferresult=newStringBuffer(content.length+50);
for(inti=0;i<content.length;i++){
switch(content[i]){
case'<':
result.append("&lt;");
break;
case'>':
result.append("&gt;");
break;
case'&':
result.append("&amp;");
break;
case'"':
result.append("&quot;");
break;
default:
result.append(content[i]);
}
}
return(result.toString());
}
}

『玖』 jsp 防sql注入

|关1.PreparedStatement

简单实用

2.replaceAll(".*([';]+|(--)+).*", " "); 简单替换

3.regx

4.str="关键字|关键字。。。。。"

String [] a=split("|")

indexOf(a[i])

大概就这么几种了,中心就是专过滤特殊字符,和属常用sql关键字

『拾』 JSP如何防范SQL注入攻击

2、正则表达式 2.1、检测SQL meta-characters的正则表达式 /(\%27)|(\')|(\-\-)|(\%23)|(#)/ix 2.2、修正检测SQL meta-characters的正则表达式 /((\%3D)|(=))[^\n]*((\%27)|(\')|(\-\-) 54ne.com |(\%3B)|(:))/i 2.3、典型的 SQL 注入攻击的正则表达式 /\w*((\%27)|(\'))((\%6F)|o|(\%4F))((\%72)|r|(\ 中国网管联盟 %52))/ix 2.4、检测SQL注入,UNION查询关键字的正则表达式 /((\%27)|(\'))union/ix(\%27)|(\') - 单 引号和它的hex等值 union - union关键字。 2.5、检测MS SQL Server SQL注入攻击的正则表达式 /exec(\s|\+)+(s|x)p\w+/ix 3、字符串过滤 public static String filterContent(String content){ String flt ="'|and|exec|insert|select|delete|update|count|*|% |chr|mid|master|truncate|char|declare|; |or|-|+|,"; Stringfilter[] = flt.split("|"); for(int i=0; i { content.replace(filter[i], ""); } return content; } 4、不安全字符屏蔽 本部分采用js来屏蔽,起的作用很小,这样用屏蔽关键字的方法虽然有一定作用,但是在实际应用中这些 SQL的关键字也可能成为真正的查询关键字,到那是被你屏蔽了那用户不是不能正常的使用了。 只要在代码规范上下点功夫就可以了。 功能介绍:检查是否含有"'","\\","/" 参数说明:要检查的字符串 返回值:0:是 1:不是 函数名是 function check(a) { return 1; fibdn = new Array ("'" ,"\\","/"); i=fibdn.length; j=a.length; for (ii=0; ii { for (jj=0; jj { temp1=a.charAt(jj); temp2=fibdn[ii]; if (tem'; p1==temp2) { return 0; } } } return 1; }

阅读全文

与jsp防注入过滤代码相关的资料

热点内容
液相用溶剂过滤器 浏览:674
纳滤水导电率 浏览:128
反渗透每小时2吨 浏览:162
做一个纯净水工厂需要多少钱 浏览:381
最终幻想4回忆技能有什么用 浏览:487
污水提升器采通 浏览:397
反渗透和不发渗透净水器有什么区别 浏览:757
提升泵的扬程 浏览:294
泽德提升泵合肥经销商 浏览:929
饮水机后盖漏水了怎么办 浏览:953
小型电动提升器 浏览:246
半透膜和细胞膜区别 浏览:187
废水拖把池 浏览:859
十四五期间城镇污水处理如何提质增效 浏览:915
怎么测试空气净化器的好坏 浏览:519
提升泵是干嘛的 浏览:744
布油做蒸馏起沫咋办 浏览:252
广州工业油烟净化器一般多少钱 浏览:204
喜哆哆空气净化器效果怎么样 浏览:424
油烟净化器油盒在什么位置 浏览:582