共計(jì) 721 個(gè)字符,預(yù)計(jì)需要花費(fèi) 2 分鐘才能閱讀完成。
自動(dòng)寫代碼機(jī)器人,免費(fèi)開通
丸趣 TV 小編給大家分享一下 SQL 注入如何做預(yù)防措施,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
1 . 什么是 sql 注入(Sql injection)?
Sql 注入是一種將 sql 代碼添加到輸入?yún)?shù)中,傳遞到 Sql 服務(wù)器解析并執(zhí)行的一種攻擊手法
2. 怎么產(chǎn)生的?
Web 開發(fā)人員無法保證所有的輸入都已經(jīng)過濾
攻擊者利用發(fā)送給 Sql 服務(wù)器的輸入數(shù)據(jù)構(gòu)造可執(zhí)行的 Sql 代碼
數(shù)據(jù)庫未做相應(yīng)的安全配置
3. 如何尋找 sql 漏洞?
識別 web 應(yīng)用中所有輸入點(diǎn)
了解哪些類型的請求會(huì)觸發(fā)異常?(特殊字符”或)
檢測服務(wù)器響應(yīng)中的異常
4. 如何進(jìn)行 SQL 注入攻擊?
數(shù)字注入:
Select * from tablename where id=1 or 1=1;
字符串注入:
Mysql 的注釋特性:
# 與 – 號后面的被注釋掉,無論密碼輸入的是什么,都能正確查詢。請點(diǎn)擊此處輸入圖片描述
5. 如何預(yù)防 sql 注入?
嚴(yán)格檢查輸入格式:is_numeric(var),tp5 的 validate 驗(yàn)證,字符串的注入采用正則看是否在 [A-Za-z] 之間
轉(zhuǎn)義:addslashes(str)、
mysqli_escape_string()函數(shù)進(jìn)行轉(zhuǎn)義
6.MySQLi 的預(yù)編譯機(jī)制
參數(shù)化綁定
參數(shù)化綁定,防止 SQL 注入的又一道屏障。php MySQLi 和 PDO 均提供這樣的功能。比如 MySQLi 可以這樣去查詢:
PDO 的更是方便,比如:
以上是“SQL 注入如何做預(yù)防措施”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!
向 AI 問一下細(xì)節(jié)