PHP中使用addslashes函數(shù)轉(zhuǎn)義的安全性原理分析
本文實(shí)例講述了PHP中使用addslashes函數(shù)轉(zhuǎn)義的安全性原理分析。分享給大家供大家參考。具體分析如下:
先來(lái)看一下ECshop中addslashes_deep的原型
if (empty($value)) {
return $value; //如為空,直接返回;
} else {
return is_array($value) ? array_map('addslashes_deep', $value): addslashes($value);
} //遞歸處理數(shù)組,直至遍歷所有數(shù)組元素;
}
addslashes_deep函數(shù)本身沒(méi)有問(wèn)題,但使用時(shí)得注意一點(diǎn)
恰好今天也是在網(wǎng)上看到了有人發(fā)了關(guān)于使用這個(gè)函數(shù)使用的BUG注入漏洞
這個(gè)函數(shù)在引用回調(diào)函數(shù)addslashes時(shí),只對(duì)數(shù)據(jù)的值進(jìn)行轉(zhuǎn)義,所以如果使用者在此過(guò)程中引用數(shù)組的鍵進(jìn)行特定處理時(shí),存在$key注入風(fēng)險(xiǎn),此時(shí)可更改addslashes_deep函數(shù),使其同時(shí)對(duì)鍵值進(jìn)行轉(zhuǎn)義,或者使用時(shí)明確不引用鍵內(nèi)容。
希望本文所述對(duì)大家的PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
thinkphp5 migrate數(shù)據(jù)庫(kù)遷移工具
這里講述的是tp5 migrate數(shù)據(jù)庫(kù)遷移工具的相關(guān)介紹,非常的簡(jiǎn)單實(shí)用,有需要的小伙伴可以來(lái)看下本文的實(shí)例2018-02-02php實(shí)現(xiàn)過(guò)濾UBB代碼的類(lèi)
這篇文章主要介紹了php實(shí)現(xiàn)過(guò)濾UBB代碼的類(lèi),涉及php正則表達(dá)式的操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03計(jì)算php頁(yè)面運(yùn)行時(shí)間的函數(shù)介紹
本篇文章是對(duì)計(jì)算php頁(yè)面運(yùn)行時(shí)間的函數(shù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-07-07php session 寫(xiě)入數(shù)據(jù)庫(kù)
這篇文章主要介紹了php session 寫(xiě)入數(shù)據(jù)庫(kù)的相關(guān)資料,需要的朋友可以參考下2016-02-02PHP pthreads v3在centos7平臺(tái)下的安裝與配置操作方法
這篇文章主要介紹了PHP pthreads v3在centos7平臺(tái)下的安裝與配置操作方法,結(jié)合圖文與實(shí)例形式分析了PHP pthreads v3在centos7平臺(tái)下的安裝與配置操作具體步驟、相關(guān)命令與注意事項(xiàng),需要的朋友可以參考下2020-02-02