亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java防止SQL注入的幾個(gè)途徑

  發(fā)布時(shí)間:2012-08-10 14:59:58   作者:佚名   我要評(píng)論
java防SQL注入,最簡(jiǎn)單的辦法是杜絕SQL拼接,SQL注入攻擊能得逞是因?yàn)樵谠蠸QL語(yǔ)句中加入了新的邏輯

java防SQL注入,最簡(jiǎn)單的辦法是杜絕SQL拼接,SQL注入攻擊能得逞是因?yàn)樵谠蠸QL語(yǔ)句中加入了新的邏輯,如果使用PreparedStatement來(lái)代替Statement來(lái)執(zhí)行SQL語(yǔ)句,其后只是輸入?yún)?shù),SQL注入攻擊手段將無(wú)效,這是因?yàn)镻reparedStatement不允許在不同的插入時(shí)間改變查詢的邏輯結(jié)構(gòu) ,大部分的SQL注入已經(jīng)擋住了, 在WEB層我們可以過(guò)濾用戶的輸入來(lái)防止SQL注入比如用Filter來(lái)過(guò)濾全局的表單參數(shù) 
01  import java.io.IOException; 
02  import java.util.Iterator; 
03  import javax.servlet.Filter; 
04  import javax.servlet.FilterChain; 
05  import javax.servlet.FilterConfig; 
06  import javax.servlet.ServletException; 
07  import javax.servlet.ServletRequest; 
08  import javax.servlet.ServletResponse; 
09  import javax.servlet.http.HttpServletRequest; 
10  import javax.servlet.http.HttpServletResponse; 
11  /**
12  * 通過(guò)Filter過(guò)濾器來(lái)防SQL注入攻擊
13  *

14  */ 
15  public class SQLFilter implements Filter { 
16  private String inj_str = "'|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare|; |or|-|+|,"; 
17  protected FilterConfig filterConfig = null; 
18  /**
19  * Should a character encoding specified by the client be ignored?
20  */ 
21  protected boolean ignore = true; 
22  public void init(FilterConfig config) throws ServletException { 
23  this.filterConfig = config; 
24  this.inj_str = filterConfig.getInitParameter("keywords"); 
25  } 
26  public void doFilter(ServletRequest request, ServletResponse response, 
27  FilterChain chain) throws IOException, ServletException { 
28  HttpServletRequest req = (HttpServletRequest)request; 
29  HttpServletResponse res = (HttpServletResponse)response; 
30  Iterator values = req.getParameterMap().values().iterator();//獲取所有的表單參數(shù) 
31  while(values.hasNext()){ 
32  String[] value = (String[])values.next(); 
33  for(int i = 0;i < value.length;i++){ 
34  if(sql_inj(value[i])){ 
35  //TODO這里發(fā)現(xiàn)sql注入代碼的業(yè)務(wù)邏輯代碼 
36  return; 
37  } 
38  } 
39  } 
40  chain.doFilter(request, response); 
41  } 
42  public boolean sql_inj(String str) 
43  { 
44  String[] inj_stra=inj_str.split("\\|"); 
45  for (int i=0 ; i < inj_stra.length ; i++ ) 
46  { 
47  if (str.indexOf(" "+inj_stra[i]+" ")>=0) 
48  { 
49  return true; 
50  } 
51  } 
52  return false; 
53  } 
54  } 
 
也可以單獨(dú)在需要防范SQL注入的JavaBean的字段上過(guò)濾: 
1   /**
2   * 防止sql注入
3   *
4   * @param sql
5   * @return
6   */ 
7   public static String TransactSQLInjection(String sql) { 
8   return sql.replaceAll(".*([';]+|(--)+).*", " "); 
9   } 

相關(guān)文章

  • SQL注入黑客防線網(wǎng)站實(shí)例分析

    這篇文章主要介紹了SQL注入黑客防線網(wǎng)站實(shí)例分析,需要的朋友可以參考下
    2017-05-19
  • ASP+PHP 標(biāo)準(zhǔn)sql注入語(yǔ)句(完整版)

    這里為大家分享一下sql注入的一些語(yǔ)句,很多情況下由于程序員的安全意識(shí)薄弱或基本功不足就容易導(dǎo)致sql注入安全問(wèn)題,建議大家多看一下網(wǎng)上的安全文章,最好的防范就是先學(xué)
    2017-05-19
  • mysql 注入報(bào)錯(cuò)利用方法總結(jié)

    這篇文章主要介紹了mysql 注入報(bào)錯(cuò)利用方法總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2016-10-08
  • SQL注入攻擊(攻擊與防范)

    SQL注入是從正常的WWW端口訪問(wèn),而且表面看起來(lái)跟一般的Web頁(yè)面訪問(wèn)沒(méi)什么區(qū)別,所以目前市面的防火墻都不會(huì)對(duì)SQL注入發(fā)出警報(bào),如果管理員沒(méi)查看IIS日志的習(xí)慣,可能被入
    2016-05-21
  • SQL注入測(cè)試實(shí)例分析

    這篇文章主要為大家介紹了SQL注入測(cè)試實(shí)例分析,對(duì)于數(shù)據(jù)庫(kù)安全非常重要,需要的朋友可以參考下
    2014-08-06
  • Sqlmap注入技巧集錦

    sqlmap 是一個(gè)自動(dòng)SQL 射入工具。本文收集了一些利用Sqlmap做注入測(cè)試的TIPS,其中也包含一點(diǎn)繞WAF的技巧,便于大家集中查閱,歡迎接樓補(bǔ)充、分享。
    2014-07-29
  • SQL注入攻防入門詳解 [圖文并茂] 附示例下載

    畢業(yè)開始從事winfrm到今年轉(zhuǎn)到 web ,在碼農(nóng)屆已經(jīng)足足混了快接近3年了,但是對(duì)安全方面的知識(shí)依舊薄弱,事實(shí)上是沒(méi)機(jī)會(huì)接觸相關(guān)開發(fā)……必須的各種借口。這幾天把sql注入
    2012-11-06
  • 防止SQL注入攻擊的一些方法小結(jié)

    SQL注入攻擊的危害性很大。在講解其防止辦法之前,數(shù)據(jù)庫(kù)管理員有必要先了解一下其攻擊的原理。這有利于管理員采取有針對(duì)性的防治措施
    2012-07-10
  • web 頁(yè)面 一些sql注入語(yǔ)句小結(jié)

    web 頁(yè)面 一些sql注入語(yǔ)句小結(jié),對(duì)于開發(fā)人員來(lái)說(shuō)一定要注意的事項(xiàng)。
    2012-03-12
  • 手動(dòng)mysql 高級(jí)注入實(shí)例分析

    為了 方便 自己隨手寫了個(gè) sql.php注入點(diǎn) 。經(jīng)典的 id沒(méi)有過(guò)濾 造成 sql語(yǔ)句帶入?yún)?shù) 形成注入, 對(duì)了 大家導(dǎo)入test.sql 這個(gè)數(shù)據(jù)庫(kù)文件吧
    2010-08-04

最新評(píng)論