防止sql注入,我們需要注意以下幾個要點:
·1.永遠不要信任使用者的輸入。對使用者的輸入進行校驗,可以通過正規表示式,或限制長度;對單引號和雙"-"進行轉換等。
·2.永遠不要使用動態拼裝sql,可以使用引數化的sql或直接使用儲存過程進行資料查詢訪問。
·3.永遠不要使用管理員許可權的資料庫連線,為每個應用使用單獨的許可權有限的資料庫連線。
·4.不要把機密資訊直接存放,加密或hash掉密碼和敏感的資訊。
·5.應用的異常資訊應該給出盡可能少的提示,最好使用自定義的錯誤資訊對原始錯誤資訊進行包裝。
·6.sql注入的檢測方法一般採取輔助軟體或**平台來檢測,軟體一般採用sql注入檢查工具jsky,**平台就有億思**安全平台檢測工具。mdcsoft scan等。採用mdcsoft_ips可以有效的防禦sql注入,xss攻擊等。
防止sql注入
在指令碼語言中,如perl和php你可以對使用者輸入的資料進行轉義從而來防止sql注入。php的mysql擴充套件提供了mysqli_real_escape_string()函式來轉義特殊的輸入字元。
like語句中的注入like查詢時,如果使用者輸入的值有"_"和"%",則會出現這種情況:使用者本來只想查詢"abcd_",查詢結果中卻有"abcd_"、"abcd"、"abcdf"等等;使用者要查詢"30%"(百分之三十)時也會出現問題。if
(get_magic_quotes_gpc(get_magic_quotes_gpc
())$name
=mysqli_real_escape_string
($conn
,$name
);mysqli_query
($conn
,"select * from users where name=''"
);
())$name
=mysqli_real_escape_string
($conn
,$name
);mysqli_query
($conn
,"select * from users where name=''"
);
在php指令碼中可以使用addcslashes()函式來處理以上情況,如下例項:
addcslashes()函式在指定的字元前新增反斜槓。$sub
==addcslashes
(mysqli_real_escape_string
($conn
,"%something_"
),"%_"
);// $sub == \%something\_
mysqli_query
($conn
,"select * from messages where subject like '%'"
);
addcslashes
(mysqli_real_escape_string
($conn
,"%something_"
),"%_"
);// $sub == \%something\_
mysqli_query
($conn
,"select * from messages where subject like '%'"
);
語法格式:
參考:
88952634 mysql SQL注入
一 漏洞描述 針對sql注入的攻擊行為可描述為通過在使用者可控引數中注入sql語法,破壞原有sql結構,達到編寫程式時意料之外結果的攻擊行為。二 攻擊場景及形成原因 漏洞成因可以歸結為以下兩個原因疊加造成的 1.程式編寫者在處理應用程式和資料庫互動時,使用字串拼接的方式構造sql語句。2.未對使用者...
sql注入 mysql Sql注入之Mysql
sql注入之mysql mysql函式 system user 系統使用者名稱 user 使用者名稱 current user 當前使用者名稱 session user 連線資料庫的使用者名稱 database 資料庫名 version 資料庫版本 load file 讀取本地檔案函式 datadi...
mySQL SQL命令大全
有很多朋友雖然安裝好了mysql但卻不知如何使用它。在這篇文章中我們就從連線mysql 修改密碼 增加使用者等方面來學習一些mysql的常用命令。一 連線mysql。1 例1 連線到本機上的mysql。首先在開啟dos視窗,然後進入目錄 mysqlbin,再鍵入命令mysql uroot p,回車後...