sql注入測試 4 如何防止該類缺陷發生

2022-07-08 14:24:24 字數 759 閱讀 7965

檢查使用者輸入的合法性,確信輸入的內容只包含合法的資料,資料檢查應當在客戶端和伺服器端都執行之所以要執行伺服器端驗證,是為了彌補客戶端驗證機制脆弱的安全性。在客戶端,攻擊者完全有可能獲得網頁的源**,修改驗證合法性的指令碼(或者直接刪除指令碼),然後將非法內容通過修改後的表單提交給伺服器。因此,要保證驗證操作確實已經執行,唯一的辦法就是在伺服器端也執行驗證。

第二:轉義敏感字元。

轉義敏感字元及字串(sql的敏感字元包括「exec」,」xp_」,」sp_」,」declare」,」union」,」cmd」,」+」,」//」,」..」,」;」,」『」,」--」,」%」,」0x」,」><=!-*/()|」,和」空格」).

第三:錯誤訊息處理

防範sql注入,還要避免出現一些詳細的錯誤訊息,因為黑客們可以利用這些訊息。要使用一種標準的輸入確認機制來驗證所有的輸入資料的長度、型別、語句、企業規則等。

第四:加密處理

將使用者登入名稱、密碼等資料加密儲存。加密使用者輸入的資料,然後再將它與資料庫中儲存的資料比較,這相當於對使用者輸入的資料進行了「消毒」處理,使用者輸入的資料不再對資料庫有任何特殊的意義,從而也就防止了攻擊者注入sql命令。

第五:儲存過程來執行所有的查詢

sql引數的傳遞方式將防止攻擊者利用單引號和連字元實施攻擊。此外,它還使得資料庫許可權可以限制到只允許特定的儲存過程執行,所有的使用者輸入必須遵從被呼叫的儲存過程的安全上下文,這樣就很難再發生注入式攻擊了。

第六:永遠不要使用動態拼裝sql。

可以使用引數化的sql或者直接使用儲存過程進行資料查詢訪問。

如何防止SQL注入

一 sql注入攻擊的簡單示例 statement select from users where value a variable 上面這條語句是很普通的一條sql語句,主要實現的功能就是讓使用者輸入乙個員工編號然後查詢這個員工的資訊。但是若這條語句被不法攻擊者改裝過後,就可能成為破壞資料的 如攻擊...

如何防止SQL注入

歸納一下,主要有以下幾點 1.永遠不要信任使用者的輸入。對使用者的輸入進行校驗,可以通過正規表示式,或限制長度 對單引號和雙 進行轉換等。2.永遠不要使用動態拼裝sql,可以使用引數化的sql或者直接使用儲存過程進行資料查詢訪問。3.永遠不要使用管理員許可權的資料庫連線,為每個應用使用單獨的許可權有...

如何防止sql注入

一 什麼是sql注入?sql注入就是利用現有應用程式,將 惡意 的sql命令注入到後台資料庫引擎執行的能力。二 sql注入攻擊過程分為五個步驟 第一步 判斷web環境是否可以sql注入 第二步 尋找sql注入點 第三步 猜解使用者名稱和密碼 第四步 尋找web管理後台入口 第五步 入侵和破壞 三 什...