導航:首頁 > 凈水問答 > 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