更新時間:2022-12-08 來源:黑馬程序員 瀏覽量:
SQL注入產(chǎn)生的根本原因是因為程序在開發(fā)過程中不注意規(guī)范書寫SQL語句和對特殊字符進(jìn)行過濾,導(dǎo)致客戶端可以通過全局變量POST和GET提交一些特殊字符,讓SQL語句正常執(zhí)行。
防止SQL注入的常用方法有如下幾種:
1.開啟配置文件中的magic_quotes_gpc和magic_quotes_runtime設(shè)置,對一些字符過濾。
2.執(zhí)行SQL語句時使用addslashes()函數(shù),對特殊字符轉(zhuǎn)義后再執(zhí)行SQL語句。
3.SQL語句書寫盡量不要省略小引號(")和單引號('')。
4.過濾掉SQL語句中的一些關(guān)鍵字,例如update、insert、delete、select、*等。
5.提高數(shù)據(jù)庫表和字段的命名技巧,對一些重要的字段根據(jù)程序的特點命名,取不易被猜到的名字。
6.PHP配置文件中設(shè)置register_globals為off,關(guān)閉全局變量注冊。
7.控制錯誤信息,不要在瀏覽器上輸出錯誤信息,將錯誤信息寫到日志文件中。
8.使用mysqli或PDO預(yù)處理。