首頁常見問題正文

SQL注入產(chǎn)生的根本原因是什么?如何防止?

更新時間:2022-12-08 來源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  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語句書寫盡量不要省略小引號(")和單引號('')。

1670467154013_SQL注入產(chǎn)生的根本原因是什么.jpg

  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ù)處理。

分享到:
在線咨詢 我要報名
和我們在線交談!