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