Gosling的夾子
          我在天空寫下你的名字,被風兒帶走了;我在沙灘寫下你的名字,被浪花帶走了;于是我在大街小巷的每一個角落寫下你的名字,我靠??!我被警察帶走了!
          posts - 5,comments - 4,trackbacks - 0
          <2007年12月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          上學的時候在濟南,語言用pb
          工作的時候在青島,改java了
          pb改java,開始真有點受不了
          好在也慢慢的適用了

          要學好java,英語似乎要過硬
          可俺的英語確實爛的要命
          咋辦?學唄,大俠說,HoHo~~

          今天是2005年8月16日,
          好像日本鬼子歷史上昨天投降
          期待明年的今天.......

          常用鏈接

          留言簿(1)

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          OpenSource Project

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          吐血詢問Jsp中怎么防止Sql注入?

          網上找了半天也沒找到,只有asp的,只能發這了,往高人指點啊

          原來以為只有asp可以注入,今天試了試jsp的居然也有啊,暈

          這應該是個很普遍的問題,希望管理員別刪

          還有我的程序基本結束了,可能的話,希望有個比較簡介的方法,

          期待中啊!!!!!


          asp中完美的解決方案


          FeedBack:
          # 一家上海的專業翻譯公司
          2006-08-09 16:03 | allenxv
          好!


          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          前不久找到一專業翻譯公司,上海的大家可以到他們的網站上去看看!

          [url=http://www.acmetranslation.com]上海翻譯公司[/url]
          [url=http://www.paper-translation.com]翻譯公司[/url]
          一家上海的專業翻譯公司  回復  更多評論
            
          # re: 吐血詢問Jsp中怎么防止Sql注入?
          2007-05-11 21:55 | dsfg
          dfdsfsdf
          我是玉
          dfi
          ewq
          wq efie
          dsfdi dsifajs
          dsfasf
          q j 我是入  回復  更多評論
            
          # re: 吐血詢問Jsp中怎么防止Sql注入?
          2007-05-11 21:56 | dsfg
          q我是奪  回復  更多評論
            
          # re: 吐血詢問Jsp中怎么防止Sql注入?
          2007-12-31 11:02 | 拽拽
          SQL 注入簡介:
          SQL注入是最常見的攻擊方式之一,它不是利用操作系統或其它系統的漏洞來實現攻擊的,而是程序員因為沒有做好判斷,被不法

          用戶鉆了SQL的空子,下面我們先來看下什么是SQL注入:

          比如在一個登陸界面,要求用戶輸入用戶名和密碼:

          用戶名: ' or 1=1 --

          密 碼:

          點登陸,如若沒有做特殊處理,而只是一條帶條件的查詢語句如:

          String sql="select * from users where username='"+userName+"' and password='"+password+"' "

          那么這個非法用戶就很得意的登陸進去了.(當然現在的有些語言的數據庫API已經處理了這些問題)

          這是為什么呢?我們來看看這條語句,將用戶輸入的數據替換后得到這樣一條語句:

          select * from users where username='' or 1=1 --' and password=''

          為了更明白些,可以將其復制到SQL分析器中,將會發現,這條語句會將數據庫的數據全部讀出來,為什么呢?

          很簡單,看到條件后面 username='' or 1=1 用戶名等于 '' 或 1=1 那么這個條件一定會成功,然后后面加兩個-,這意味著

          什么?沒錯,注釋,它將后面的語句注釋,讓他們不起作用,這樣就可以順利的把數據庫中的數據讀取出來了。

          這還是比較溫柔的,如果是執行
          select * from users where username='' ;DROP Database (DB Name) --' and password=''

          .......其他的您可以自己想象。。。

          那么我們怎么來處理這種情況呢?下面我以java為列給大家兩種簡單的方法:

          第一種采用預編譯語句集,它內置了處理SQL注入的能力,只要使用它的setString方法傳值即可:
          String sql= "select * from users where username=? and password=?;
          PreparedStatement preState = conn.prepareStatement(sql);
          preState.setString(1, userName);
          preState.setString(2, password);
          ResultSet rs = preState.executeQuery();
          ...

          第二種是采用正則表達式將包含有 單引號('),分號(;) 和 注釋符號(--)的語句給替換掉來防止SQL注入
          public static String TransactSQLInjection(String str)
          {
          return str.replaceAll(".*([';]+|(--)+).*", " ");
          }

          userName=TransactSQLInjection(userName);
          password=TransactSQLInjection(password);

          String sql="select * from users where username='"+userName+"' and password='"+password+"' "
          Statement sta = conn.createStatement();
          ResultSet rs = sta.executeQuery(sql);
          ...
          這個東西很簡單,也很常見,方法還有很多,如果您有好的方法希望貼出來,大家一起學習學習。
            回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 成武县| 元江| 武定县| 莱西市| 平顺县| 阿合奇县| 龙州县| 壶关县| 怀来县| 永和县| 苍山县| 万载县| 商河县| 竹山县| 边坝县| 宜章县| 萍乡市| 陵川县| 温宿县| 罗定市| 普陀区| 阿克苏市| 泸水县| 安溪县| 萨迦县| 于都县| 汉沽区| 南乐县| 托克逊县| 兰考县| 张掖市| 沁阳市| 贵港市| 治多县| 富裕县| 满洲里市| 瑞金市| 惠安县| 阳谷县| 冕宁县| 双流县|