明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

深入知道SQL注入與預(yù)防措施

[摘要]本篇文章通過SQL和MYSQL的對比,以及SQL注入的原理,以及如何預(yù)防SQL注入等方面,詳細(xì)分析了SQL注入相關(guān)知識(shí)點(diǎn),希望可以幫助到一些有需要的人。1 .什么是sql注入(Sql injecti...
本篇文章通過SQL和MYSQL的對比,以及SQL注入的原理,以及如何預(yù)防SQL注入等方面,詳細(xì)分析了SQL注入相關(guān)知識(shí)點(diǎn),希望可以幫助到一些有需要的人。

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漏洞?

識(shí)別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的注釋特性:

深入了解SQL注入和預(yù)防措施

#與--號后面的被注釋掉,無論密碼輸入的是什么,都能正確查詢。請點(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ī)制

深入了解SQL注入和預(yù)防措施

參數(shù)化綁定

參數(shù)化綁定,防止 SQL 注入的又一道屏障。php MySQLi 和 PDO 均提供這樣的功能。比如 MySQLi 可以這樣去查詢:

深入了解SQL注入和預(yù)防措施

PDO 的更是方便,比如:

深入了解SQL注入和預(yù)防措施

相關(guān)推薦:

sql注入網(wǎng)站的方法

PHP簡單高效防御sql注入的方法分享

PHP防止sql注入的方法講解

以上就是深入了解SQL注入和預(yù)防措施的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!


學(xué)習(xí)教程快速掌握從入門到精通的SQL知識(shí)。