首頁常見問題正文

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

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

IT培訓(xùn)班

  SQL注入產(chǎn)生的根本原因是因?yàn)槌绦蛟陂_發(fā)過程中不注意規(guī)范書寫SQL語句和對(duì)特殊字符進(jìn)行過濾,導(dǎo)致客戶端可以通過全局變量POST和GET提交一些特殊字符,讓SQL語句正常執(zhí)行。

  防止SQL注入的常用方法有如下幾種:

  1.開啟配置文件中的magic_quotes_gpc和magic_quotes_runtime設(shè)置,對(duì)一些字符過濾。

  2.執(zhí)行SQL語句時(shí)使用addslashes()函數(shù),對(duì)特殊字符轉(zhuǎn)義后再執(zhí)行SQL語句。

  3.SQL語句書寫盡量不要省略小引號(hào)(")和單引號(hào)('')。

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

  4.過濾掉SQL語句中的一些關(guān)鍵字,例如update、insert、delete、select、*等。

  5.提高數(shù)據(jù)庫表和字段的命名技巧,對(duì)一些重要的字段根據(jù)程序的特點(diǎn)命名,取不易被猜到的名字。

  6.PHP配置文件中設(shè)置register_globals為off,關(guān)閉全局變量注冊(cè)。

  7.控制錯(cuò)誤信息,不要在瀏覽器上輸出錯(cuò)誤信息,將錯(cuò)誤信息寫到日志文件中。

  8.使用mysqli或PDO預(yù)處理。

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!