深入了解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驗(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 的更是方便,比如:

相關(guān)文章
mysql 修改密碼和設(shè)置允許遠(yuǎn)程登錄
這篇文章主要介紹了mysql 修改密碼和設(shè)置允許遠(yuǎn)程登錄的相關(guān)資料,需要的朋友可以參考下2015-07-07
MySQL for update鎖表還是鎖行校驗(yàn)(過程詳解)
在MySQL中,使用for update子句可以對查詢結(jié)果集進(jìn)行行級鎖定,以便在事務(wù)中對這些行進(jìn)行更新或者防止其他事務(wù)對這些行進(jìn)行修改,這篇文章主要介紹了MySQL for update鎖表還是鎖行校驗(yàn),需要的朋友可以參考下2024-02-02
mysql實(shí)現(xiàn)設(shè)置定時任務(wù)的方法分析
這篇文章主要介紹了mysql實(shí)現(xiàn)設(shè)置定時任務(wù)的方法,結(jié)合實(shí)例形式分析了mysql定時任務(wù)相關(guān)的事件計劃設(shè)置與存儲過程使用等操作技巧,需要的朋友可以參考下2019-10-10
Eclipse與MySQL數(shù)據(jù)庫的連接教程(已實(shí)操)
用eclipse編寫的好的代碼,我們怎么才能連接到數(shù)據(jù)庫呢?下面這篇文章主要給大家介紹了關(guān)于Eclipse與MySQL數(shù)據(jù)庫連接的相關(guān)資料,下面的操作是經(jīng)本人驗(yàn)證,確實(shí)可行,需要的朋友可以參考下2023-05-05
MySQL索引類型總結(jié)和使用技巧以及注意事項(xiàng)
索引是快速搜索的關(guān)鍵。MySQL索引的建立對于MySQL的高效運(yùn)行是很重要的。下面介紹幾種常見的MySQL索引類型2014-04-04
innodb如何巧妙的實(shí)現(xiàn)事務(wù)隔離級別詳解
隔離是ACID(Atomicity,Consistency,Isolation,Durability)的重要部分,下面這篇文章主要給大家介紹了關(guān)于innodb如何巧妙的實(shí)現(xiàn)事務(wù)隔離級別的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-11-11

