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)用中所有輸入點
了解哪些類型的請求會觸發(fā)異常?(特殊字符”或')
檢測服務(wù)器響應(yīng)中的異常
4. 如何進行SQL注入攻擊?
數(shù)字注入:
Select * from tablename where id=1 or 1=1;
字符串注入:
Mysql的注釋特性:
#與--號后面的被注釋掉,無論密碼輸入的是什么,都能正確查詢。請點擊此處輸入圖片描述
5. 如何預(yù)防sql注入?
嚴格檢查輸入格式:is_numeric(var),tp5的validate驗證,字符串的注入采用正則看是否在[A-Za-z]之間
轉(zhuǎn)義:addslashes(str)、
mysqli_escape_string()函數(shù)進行轉(zhuǎn)義
6.MySQLi的預(yù)編譯機制
參數(shù)化綁定
參數(shù)化綁定,防止 SQL 注入的又一道屏障。php MySQLi 和 PDO 均提供這樣的功能。比如 MySQLi 可以這樣去查詢:
PDO 的更是方便,比如:
標(biāo)簽:平頂山 濮陽 浙江 安康 四川 那曲 安徽 山南
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《深入了解SQL注入》,本文關(guān)鍵詞 深入,了解,SQL,注入,深入,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。