深入了解SQL注入
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)
了解哪些類型的請求會觸發(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驗證,字符串的注入采用正則看是否在[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 的更是方便,比如:
相關(guān)文章
MySQL利用profile分析慢sql詳解(group left join效率高于子查詢)
最近因為一個用了子查詢的sql語句查詢很慢,嚴(yán)重影響了性能,所以需要進(jìn)行優(yōu)化,下面這篇文章主要跟大家介紹了關(guān)于MySQL利用profile分析慢sql的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友們可以參考借鑒,下面來一起看看吧。2017-03-03MySQL本地版本升級超詳細(xì)教程(從5.5.20升到8.0.21)
MySQL是一款廣泛使用的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),但是舊版本的客戶端可能會受到一些限制,下面這篇文章主要給大家介紹了關(guān)于MySQL本地版本升級超詳細(xì)教程,本文是從5.5.20升到8.0.21的相關(guān)資料,需要的朋友可以參考下2023-04-04MySQL 8.0的關(guān)系數(shù)據(jù)庫新特性詳解
廣受歡迎的開源數(shù)據(jù)庫MySQL 8中,包括了眾多新特性,下面這篇文章主要給大家介紹了關(guān)于MySQL 8.0的關(guān)系數(shù)據(jù)庫新特性的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。2018-03-03MySQL控制流函數(shù)(-if?,elseif,else,case...when)
這篇文章主要介紹了MySQL控制流函數(shù)(-if?,elseif,else,case...when),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下2022-07-07mysql中優(yōu)化和修復(fù)數(shù)據(jù)庫工具mysqlcheck詳細(xì)介紹
這篇文章主要介紹了mysql中優(yōu)化和修復(fù)數(shù)據(jù)庫工具mysqlcheck詳細(xì)介紹,需要的朋友可以參考下2014-05-05Ubuntu Server 16.04下mysql8.0安裝配置圖文教程
這篇文章主要為大家詳細(xì)介紹了Ubuntu Server 16.04下mysql8.0安裝配置圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-05-05