sql注入產生的原因是在開發過程中沒有注意書寫規范的sql和沒有對特殊字符進行過濾,從而導致客戶端通過全局變量POST和GET提交一些sql語句正常執行,從而達到sql注入的攻擊目的,可以通過以下方法來防止sql注入:
1、開啟配置文件中的magic_quotes_gpc和magic_quotes_runtime設置。
2、執行sql語句時使用addslashes進行sql語句轉換。
3、sql語句書寫盡量不要省略小引號和單引號。
4、過濾掉sql語句中的一些關鍵字:update、insert、delete、select、* 等。
5、提高數據庫表和字段的命名技巧,對一些重要的字段根據程序的特點命名,取不易被猜到的。
6、Php配置文件中設置register_globals為off,關閉全局變量注冊。
7、控制錯誤信息,不要再瀏覽器上輸出錯誤信息,將錯誤信息寫到日志文件中。