<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          什么是 SQL 注入攻擊?

          共 1328字,需瀏覽 3分鐘

           ·

          2021-08-19 23:46

          SQL 注入就是通過(guò)把 SQL 命令插入到 Web 表單提交或輸入域名或頁(yè)面請(qǐng)求的查詢字符串,服務(wù)器拿到這個(gè)字符串之后,會(huì)把這個(gè)字符串作為 sql 的執(zhí)行參數(shù)去數(shù)據(jù)庫(kù)查詢,然而這個(gè)參數(shù)是惡意的,以至于服務(wù)器執(zhí)行這條 sql 命令之后,出現(xiàn)了問(wèn)題。

          下面直接弄個(gè)案例吧,這樣容易理解一些。

          比如,在一個(gè)登錄界面,要求輸入用戶名和密碼,可以這樣輸入實(shí)現(xiàn)免帳號(hào)登錄

          用戶名: ‘or 1 = 1 --
          密 碼:

          用戶一旦點(diǎn)擊登錄,如若沒(méi)有做特殊處理,那么這個(gè)非法用戶就很得意的登陸進(jìn)去了。

          這是為什么呢?

          下面我們分析一下:從理論上說(shuō),后臺(tái)認(rèn)證程序中可能會(huì)有如下的SQL語(yǔ)句:

          String sql = “select * from user_table where username=’ “+userName+” ’ and password=’ “+password+” ‘”;

          注:可以左右拉動(dòng),下同

          因此,當(dāng)輸入了上面的用戶名和密碼,把參數(shù)代進(jìn)去,則上面的SQL語(yǔ)句變成:

          SELECT * FROM user_table WHERE username=’’or 1 = 1 –- and password=’’

          分析上述SQL語(yǔ)句我們知道,username=‘ or 1=1 這個(gè)語(yǔ)句一定會(huì)成功;然后后面加兩個(gè)-,在 sql 中,兩個(gè) -這意味著注釋,它將后面的語(yǔ)句注釋,讓他們不起作用。這樣,后面的and password=’’語(yǔ)句將不會(huì)執(zhí)行,所以上述語(yǔ)句永遠(yuǎn)都能正確執(zhí)行,用戶輕易騙過(guò)系統(tǒng),獲取合法身份。

          應(yīng)對(duì)方法

          (1). 參數(shù)綁定

          使用預(yù)編譯手段,綁定參數(shù)是最好的防SQL注入的方法。目前許多的 ORM 框架及 JDBC 等都實(shí)現(xiàn)了 SQL 預(yù)編譯和參數(shù)綁定功能,攻擊者的惡意SQL會(huì)被當(dāng)做SQL 的參數(shù)而不是 SQL 命令被執(zhí)行。

          在mybatis的mapper文件中,對(duì)于傳遞的參數(shù)我們一般是使用 #$來(lái)獲取參數(shù)值。

          當(dāng)使用#時(shí),變量是占位符,就是一般我們使用 javajdbc 的 PrepareStatement 時(shí)的占位符,所有可以防止 sql 注入;當(dāng)使用 $時(shí),變量就是直接追加在sql中,一般會(huì)有 sql 注入問(wèn)題。

          (2). 使用正則表達(dá)式過(guò)濾傳入的參數(shù),例如把出現(xiàn)雙-的過(guò)濾掉等等。

          --------------END--------------


          更多計(jì)算機(jī)網(wǎng)絡(luò)入門文章,可以來(lái)帥地的個(gè)人網(wǎng)站看,之前寫過(guò)一個(gè)極簡(jiǎn)入門教程,網(wǎng)站:https://www.iamshuaidi.com/359.html


          注:點(diǎn)擊閱讀原文可以直達(dá),不過(guò)建立PC打開(kāi)。

          瀏覽 28
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  操屄影院 | 操操操无码 | 自拍偷拍第3页 | 五月激情丁香 | 久久久中文字幕三级电影网 |