首頁 >資料庫 >mysql教程 >web安全之如何防止SQL注入

web安全之如何防止SQL注入

little bottle
little bottle轉載
2019-04-29 13:27:183267瀏覽

SQL注入,就是透過把SQL指令插入Web表單遞交或輸入網域或頁面請求的查詢字串,最後達到欺騙伺服器執行惡意的SQL指令,例如先前的許多影視網站洩漏VIP會員密碼大多就是透過WEB表單遞交查詢字元暴出的,這類表單特別容易受到SQL注入式攻擊.

SQL注入原理

#當應用程式使用輸入內容來建構動態sql語句以存取資料庫時,會發生sql注入攻擊。如果程式碼使用預存程序,而這些預存程序會作為包含未篩選的使用者輸入的字串來傳遞,也會發生sql注入。

sql注入可能導致攻擊者使用應用程式登陸在資料庫中執行命令。如果應用程式使用特權過高的帳戶連接到資料庫,這種問題會變得很嚴重。在某些表單中,使用者輸入的內容直接用來建構動態sql指令,或作為預存程序的輸入參數,這些表單特別容易受到sql注入的攻擊。而許多網站程式在編寫時,沒有對使用者輸入的合法性進行判斷或程式中本身的變數處理不當,使應用程式存在安全隱患。這樣,使用者就可以提交一段資料庫查詢的程式碼, 根據程式回傳的結果,得到一些敏感的資訊或控制整個伺服器,於是sql注入就發生了。

如何防止SQL注入

  1. 永遠不要信任使用者的輸入。對使用者的輸入進行校驗,可以透過正規表示式,或限制長度的方式進行處理;然後對單引號和雙"-"等敏感符號進行轉換等。
  2. 不要使用動態拼裝sql,可以使用參數化的sql或直接使用預存程序進行資料查詢存取。
  3. 永遠不要使用管理員權限的資料庫連接,為每個應用程式使用單獨的權限有限的資料庫連接
  4. 不要把機密資訊直接存放,加密或hash掉密碼和敏感的信息。
  5. 應用程式的異常訊息應該給出盡可能少的提示,最好使用自訂的錯誤訊息對原始錯誤訊息進行包裝。

相關教學:SQL影片教學

#

以上是web安全之如何防止SQL注入的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除