PHP中使用addslashes函數(shù)轉(zhuǎn)義的安全性原理分析
更新時(shí)間:2014年11月03日 10:48:12 投稿:shichen2014
這篇文章主要介紹了PHP中使用addslashes函數(shù)轉(zhuǎn)義的安全性原理分析,較為深入的分析了addslashes函數(shù)的用法及ecshop自定義函數(shù)addslashes_deep的不足之處,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
本文實(shí)例講述了PHP中使用addslashes函數(shù)轉(zhuǎn)義的安全性原理分析。分享給大家供大家參考。具體分析如下:
先來看一下ECshop中addslashes_deep的原型
復(fù)制代碼 代碼如下:
function addslashes_deep($value) {
if (empty($value)) {
return $value; //如為空,直接返回;
} else {
return is_array($value) ? array_map('addslashes_deep', $value): addslashes($value);
} //遞歸處理數(shù)組,直至遍歷所有數(shù)組元素;
}
if (empty($value)) {
return $value; //如為空,直接返回;
} else {
return is_array($value) ? array_map('addslashes_deep', $value): addslashes($value);
} //遞歸處理數(shù)組,直至遍歷所有數(shù)組元素;
}
addslashes_deep函數(shù)本身沒有問題,但使用時(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)義,所以如果使用者在此過程中引用數(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ù)庫遷移工具
這里講述的是tp5 migrate數(shù)據(jù)庫遷移工具的相關(guān)介紹,非常的簡(jiǎn)單實(shí)用,有需要的小伙伴可以來看下本文的實(shí)例2018-02-02計(jì)算php頁面運(yùn)行時(shí)間的函數(shù)介紹
本篇文章是對(duì)計(jì)算php頁面運(yùn)行時(shí)間的函數(shù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-07-07PHP 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