全國(guó)咨詢(xún)/投訴熱線:400-618-4000

首頁(yè)常見(jiàn)問(wèn)題正文

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

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

IT培訓(xùn)班

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

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

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

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

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

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

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

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

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

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

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

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