直面–SQL注入式攻擊

來源:互聯網
上載者:User

          SQL注入式攻擊,就是攻擊者把SQL命令插入到Web表單的輸入欄位或頁面請求的查詢字串,欺騙伺服器執行惡意的SQL命令。在某些表單中,使用者輸入的內容直接用來構造(或者影響)動態SQL命令,或作為預存程序的輸入參數,這類表單特別容易受到SQL注入式攻擊。

    這是百度百科的解釋,怎麼樣,暈了沒有?不過沒有關係,我試試看,能不能把大家講醒了.

    顧名思義:SQL注入式攻擊,肯定是SQL語句的事了.所以,先來看一個SQL語句:

        Select *from Tabel1 Where User_Name='" & txtUser_Name.text &"'

    這是一句大家經常用到的SQL語句,可能有人會想,這麼簡單的一句話,會有什麼問題呢?不要著急,且聽我細細說來.

    

    你的本意是想讓某些具有相應許可權的人操作程式,他們都會知道登入的使用者名稱,藉此驗證.可是,你有沒有想過,如果我在txtUser_Name輸入框中輸入  "
" &" ' or'" & "1=1"

    看,原本的SQL語句:

         Select *from Tabel1 Where User_Name='" & txtUser_Name.text &"'

    

   現在變成了:

        Select *from Tabel1 Where User_Name='" & "  " &" ' or '" &"1=1"  &"'  


    這時,相信明眼人都看出來了,後部分的或命題:
or 1=1 是必然成立的
,所以,登入程式成功了!

    沒錯,這就是SQL注入式攻擊了.攻擊者嘗試輸入某些特殊的SQL字串篡改查詢改變其原來的功能,欺騙系統授予存取權限。

    說到這裡,大家有沒有中豁然開朗的感覺---原來,駭客,就是這樣練成的…

    那麼,既然SQL注入有這麼大的危害,我們該如何防止SQL注入呢?

    

   簡單的介紹這幾種方法,使用者可自行選擇.

  1.永遠不要信任使用者的輸入。對使用者的輸入進行校正,可以通過Regex,或限制長度;對單引號和雙"-"進行轉換等。

  2.永遠不要使用動態拼裝sql,可以使用參數化的sql或者直接使用預存程序進行資料查詢存取。

  3.永遠不要使用管理員權限的資料庫連接,為每個應用使用單獨的許可權有限的資料庫連接。

  4.不要把機密資訊直接存放,加密或者hash掉密碼和敏感的資訊。

  5.應用的異常資訊應該給出儘可能少的提示,最好使用自訂的錯誤資訊對原始錯誤資訊進行封裝

  6.sql注入的檢測方法一般採取輔助軟體或網站平台來檢測,軟體一般採用sql注入偵查工具jsky,網站平台就有億思網站安全平台偵查工具。MDCSOFT
SCAN等。採用MDCSOFT-IPS可以有效防禦SQL注入,XSS攻擊等.

     

    直面--SQL注入式攻擊,讓你的程式更安全,讓使用者使用的更放心!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.