|
特地查看了下手冊(cè),關(guān)于php magic quotes,常見的幾個(gè)設(shè)置如下,magic_quotes_gpc,magic_quotes_sybase,magic_quote_runtime,這幾個(gè)函數(shù)是在php.ini中去配置的,從手冊(cè)中可以看出從php5.3后已經(jīng)廢除了這些特性,所以強(qiáng)烈大家不要使用,在php.ini中關(guān)閉它。
這些函數(shù)的作用是對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)義。防止sql注入的時(shí)候,很多人會(huì)這樣寫:
復(fù)制代碼 代碼如下:
if(!get_magic_quotes_gpc()){
$post=addslashes($post);
}
如果開啟了它們,會(huì)自動(dòng)給你轉(zhuǎn)義單引號(hào)(')、雙引號(hào)(")、反斜線(/)與 NUL(null字符),其實(shí)就相當(dāng)于調(diào)用addslashes函數(shù)。你可能會(huì)說這樣不是很好嘛,安全性更高了,但是,你考慮代碼移植性了嗎?另外,對(duì)于上所有g(shù)pc($_GET,$_POST,$_COOKIE)的數(shù)據(jù)你都進(jìn)行轉(zhuǎn)義是否有必要?開銷有多大?下面php點(diǎn)點(diǎn)通(phpddt.com)就對(duì)手冊(cè)中關(guān)于Magic Quotes的詳細(xì)說明:
1.magic_quotes_gpc
magic_quotes_gpc這個(gè)是用來設(shè)置GPC($_GET、$_POST、$_COOKIE)的魔術(shù)引用狀態(tài)(在php4中也包含$_ENV)。當(dāng)開啟時(shí),所有的單引號(hào)(single-quote),雙引號(hào)(double quote),反斜線(backslash)和NUL's會(huì)被反斜線自動(dòng)轉(zhuǎn)義。當(dāng)開啟magic_quote_sybase為on時(shí),只有單引號(hào)(singgle-quote)會(huì)被單引號(hào)轉(zhuǎn)義為'',雙引號(hào)、反斜線(backslash)和NUL's不受影響不會(huì)被轉(zhuǎn)義。
2.magic_quote_runtime
magic_quote_runtime如果開啟該選項(xiàng),許多返回外部數(shù)據(jù)(數(shù)據(jù)庫、文本)的函數(shù)將會(huì)被反斜線(backslash)轉(zhuǎn)義。如果也開啟magic_quote_sybase,則只有單引號(hào)(single-quote)會(huì)被單引號(hào)轉(zhuǎn)義。
3.magic_quotes_sybase
magic_quotes_sybase如果設(shè)置此選項(xiàng)開啟、在magic_quotes_gpc,magic_quotes_runtime開啟的情況下單引號(hào)‘會(huì)被單引號(hào)'轉(zhuǎn)移而不是被反斜線/轉(zhuǎn)義。同時(shí)、此設(shè)置會(huì)完全覆蓋magic_quotes_gpc的設(shè)置,即使magic_quotes_gpc被設(shè)置為on,雙引號(hào)“、反斜線/和NUL's也不會(huì)被轉(zhuǎn)義。
php技術(shù):深入PHP magic quotes的詳解,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。