程序開發過程中不注意規范書寫sql語句和對特殊字符進行過濾,導致客戶端可以通過全局變量POST 和GET提交一些sql語句正常執行。產生Sql注入。
下面是防止辦法:
a. 過濾掉一些常見的數據庫操作關鍵字,或者通過系統函數來進行過濾。
b. 在PHP配置文件中將Register_globals=offff;設置為關閉狀態
c. SQL語句書寫的時候盡量不要省略小引號(tab 鍵上面那個)和單引號
d. 提高數據庫命名技巧,對于一些重要的字段根據程序的特點命名,取不易被猜到的
e. 對于常用的方法加以封裝,避免直接暴漏SQL語句
f. 開啟PHP安全模式:Safe_mode=on;
g. 打開magic_quotes_gpc來防止SQL注入
h. 控制錯誤信息:關閉錯誤提示信息,將錯誤信息寫到系統日志。
i. 使用mysqli或pdo預處理。