所謂SQL注入式攻擊,就是攻擊者把SQL命令插入到Web表單的輸入域或頁面請求的查詢字串,欺騙服務器執行惡意的SQL命令。比如:攻擊者在用戶名字和密碼輸入框中輸入"'或'1'='1"之類的內容。最后得到的SQL命令可能變成:SELECT * from Users WHERE login = '' or '1'='1' AND password = '' or '1'='1'。這時,已經不能真正驗證用戶身份,所以系統會錯誤地授權給攻擊者。
至于如何防止SQL注入式攻擊?


只要在利用表單輸入的內容構造SQL命令之前,把所有輸入內容過濾一番就可以了。過濾輸入內容可以按多種方式進行。
⑴ 對于動態構造SQL查詢的場合,可以使用下面的技術:
第一:替換單引號,即把所有單獨出現的單引號改成兩個單引號,防止攻擊者修改SQL命令的含義。
第二:洗掉用戶輸入內容中的所有連字符。
第三:對于用來執行查詢的資料庫帳戶,限制其權限。
⑵ 用存盤程序來執行所有的查詢。
⑶ 限制表單或查詢字串輸入的長度。
⑷ 檢查用戶輸入的合法性,確信輸入的內容只包含合法的資料。
⑸ 將用戶登錄名稱、密碼等資料加密保存。
⑹ 檢查提取資料的查詢所回傳的記錄數量。
uj5u.com熱心網友回復:
拼接字串的做法都是治標不治本uj5u.com熱心網友回復:
引數化查詢,防止sql注入uj5u.com熱心網友回復:
不使用拼接SQL,基本上可以規避 99% 的 SQL 注入。轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/26203.html
標籤:基礎類
