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)義的安全性原理分析。分享給大家供大家參考。具體分析如下:
先來(lái)看一下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ù)本身沒有問(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)文章
詳解配置 Apache 服務(wù)器支持 PHP 文件的解析
這篇文章主要介紹了詳解配置 Apache 服務(wù)器支持 PHP 文件的解析的相關(guān)資料,需要的朋友可以參考下2017-02-02
PHP 與 UTF-8 的最佳實(shí)踐詳細(xì)介紹
這篇文章主要介紹了PHP 與 UTF-8 的最佳實(shí)踐詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下2017-01-01
php實(shí)現(xiàn)的redis緩存類定義與使用方法示例
這篇文章主要介紹了php實(shí)現(xiàn)的redis緩存類,結(jié)合具體實(shí)例形式分析了php封裝的針對(duì)redis緩存類定義與使用相關(guān)操作技巧,需要的朋友可以參考下2017-08-08
php跨域檢測(cè)類允許部分域名訪問(wèn)的示例詳解
PHP跨域檢測(cè)類是一種封裝了跨域檢測(cè)邏輯的PHP類,它可以用于在PHP應(yīng)用程序中檢測(cè)和處理跨域請(qǐng)求,以確保安全和正常的跨域通信,本文給出了示例給大家介紹php如何允許部分域名訪問(wèn),需要的朋友可以參考下2023-12-12
深入理解PHP原理之Session Gc的一個(gè)小概率Notice
PHP Notice: session_start(): ps_files_cleanup_dir2011-04-04

