SQL 注入
結構化的查詢語言注入
相關錯誤
"此伺服器難以抵禦 SQL 注入攻擊。確定輸入 SQL 查詢已驗證。"
問題
SQL 注入攻擊是網站和網頁應用程式的代碼中的一種漏洞類型。此漏洞允許擊者刼持後端程序與干擾應用程式對其資料庫進行的查詢。
SQL 注入攻擊發生在資料從不受信任的來源進入程式時。然後資料用於動態建構 SQL 查詢。
當 SQL 注入攻擊成功時,攻擊者可以:
不使用密碼登入應用程式或網路前端。
從安全的資料庫中存取、修改和刪除儲存的資料。
建立他們自己的資料庫記錄或修改現有的記錄,埋下發動更多攻擊的管道。
解決方案
預防 SQL 注入攻擊的方式:
使用準備好的聲明 (與參數化的查詢) 確定傳遞到 SQL 聲明的參數 (輸入) 以安全的方式處理。
允許將輸入資料驗證加入清單 (不封鎖清單)。不根據封鎖清單篩選使用者輸入的資料。攻擊者幾乎總是可以找到繞過您的清單的方式。盡可能僅使用嚴格的允許清單確認和篩選使用者輸入的資料。
無法將查詢參數化和驗證輸入資料時,從輸入參數中逸出特殊字元。
執行基本權限的準則,增強對您的網站的存取控制以降低安全威脅:
在您的系統上使用基本權限執行操作。
僅提供所需動作的權限。
不提供應用程式帳戶的存取權限給系統管理員。
在您的環境中最小化每個資料庫帳戶的權限。