av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

PHP安全之魔術(shù)引號(hào)——什么是魔術(shù)引號(hào)以及如何使用

瀏覽:34日期:2022-09-15 13:01:29

注:魔術(shù)引號(hào)特性已自 PHP 5.3.0 起廢棄并將自 PHP 5.4.0 起移除。

什么是魔術(shù)引號(hào)

當(dāng)打開時(shí),所有的?’(單引號(hào)),'(雙引號(hào)),(反斜線)和?NULL?字符都會(huì)被自動(dòng)加上一個(gè)反斜線進(jìn)行轉(zhuǎn)義。這和?addslashes()?作用完全相同。

一共有三個(gè)魔術(shù)引號(hào)指令:

magic_quotes_gpc?影響到?HTTP?請(qǐng)求數(shù)據(jù)(GET,POST 和 COOKIE)。不能在運(yùn)行時(shí)改變。在?PHP?中默認(rèn)值為?on。magic_quotes_runtime?如果打開的話,大部份從外部來源取得數(shù)據(jù)并返回的函數(shù),包括從數(shù)據(jù)庫和文本文件,所返回的數(shù)據(jù)都會(huì)被反斜線轉(zhuǎn)義。該選項(xiàng)可在運(yùn)行的時(shí)改變,在?PHP?中的默認(rèn)值為?off。magic_quotes_sybase?如果打開的話,將會(huì)使用單引號(hào)對(duì)單引號(hào)進(jìn)行轉(zhuǎn)義而非反斜線。此選項(xiàng)會(huì)完全覆蓋?magic_quotes_gpc。如果同時(shí)打開兩個(gè)選項(xiàng)的話,單引號(hào)將會(huì)被轉(zhuǎn)義成?’’。而雙引號(hào)、反斜線 和 NULL 字符將不會(huì)進(jìn)行轉(zhuǎn)義。為什么要用魔術(shù)引號(hào)

注:本特性已自 PHP 5.3.0 起廢棄并將自 PHP 5.4.0 起移除。

沒有理由再使用魔術(shù)引號(hào),因?yàn)樗辉偈?PHP?支持的一部分。 不過它幫助了新手在不知不覺中寫出了更好(更安全)的代碼。 但是在處理代碼的時(shí)候,最好是更改你的代碼而不是依賴于魔術(shù)引號(hào)的開啟。?為什么這個(gè)功能存在?是為了阻止SQL 注入。 在今天,開發(fā)者能夠更好得意識(shí)到了安全問題,并最終使用數(shù)據(jù)庫轉(zhuǎn)移機(jī)制或者 prepared 語句來取代魔術(shù)引號(hào)功能。為什么不用魔術(shù)引號(hào)

注:本特性已自 PHP 5.3.0 起廢棄并將自 PHP 5.4.0 起移除。

可移植性:編程時(shí)認(rèn)為其打開或并閉都會(huì)影響到移植性。可以用?get_magic_quotes_gpc()?來檢查是否打開,并據(jù)此編程。性能:由于并不是每一段被轉(zhuǎn)義的數(shù)據(jù)都要插入數(shù)據(jù)庫的,如果所有進(jìn)入 PHP 的數(shù)據(jù)都被轉(zhuǎn)義的話,那么會(huì)對(duì)程序的執(zhí)行效率產(chǎn)生一定的影響。在運(yùn)行時(shí)調(diào)用轉(zhuǎn)義函數(shù)(如?addslashes())更有效率。?盡管?php.ini-dist?默認(rèn)打開了這個(gè)選項(xiàng),但是?php.ini-recommended?默認(rèn)卻關(guān)閉了它,主要是出于性能的考慮。不便:由于不是所有數(shù)據(jù)都需要轉(zhuǎn)義,在不需要轉(zhuǎn)義的地方看到轉(zhuǎn)義的數(shù)據(jù)就很煩。比如說通過表單發(fā)送郵件,結(jié)果看到一大堆的 ’。針對(duì)這個(gè)問題,可以使用stripslashes()?函數(shù)處理。關(guān)閉魔術(shù)引號(hào)

magic_quotes_gpc?指令只能在系統(tǒng)級(jí)關(guān)閉,不能在運(yùn)行時(shí)。也就是說不能用?ini_set()。

Example #1 在服務(wù)器端關(guān)閉魔術(shù)引號(hào)

下面是一個(gè)通過?php.ini?文件把這些選項(xiàng)設(shè)為?Off?的范例。

; Magic quotes;; Magic quotes for incoming GET/POST/Cookie data.magic_quotes_gpc = Off; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.magic_quotes_runtime = Off; Use Sybase-style magic quotes (escape ’ with ’’ instead of ’).magic_quotes_sybase = Off

如果不能修改服務(wù)器端的配置文件,使用?.htaccess?也可以。范例如下:

php_flag magic_quotes_gpc Off

為了能寫出移植性較強(qiáng)的代碼(可以運(yùn)行于任何環(huán)境),例如不能修改服務(wù)器配置的情況,下面的例子可以在運(yùn)行時(shí)關(guān)閉?magic_quotes_gpc。但是這樣做比較低效,適當(dāng)?shù)男薷呐渲貌攀歉玫霓k法。

Example #2 在運(yùn)行時(shí)關(guān)閉魔術(shù)引號(hào)

<?php if (get_magic_quotes_gpc()) {function stripslashes_deep($value){ $value = is_array($value) ? array_map(’stripslashes_deep’, $value) : stripslashes($value); return $value;}$_POST = array_map(’stripslashes_deep’, $_POST);$_GET = array_map(’stripslashes_deep’, $_GET);$_COOKIE = array_map(’stripslashes_deep’, $_COOKIE);$_REQUEST = array_map(’stripslashes_deep’, $_REQUEST); }?>

注:array_map()?返回一個(gè)數(shù)組,該數(shù)組包含了?arr1?中的所有單元經(jīng)過?callback?作用過之后的單元。callback?接受的參數(shù)數(shù)目應(yīng)該和傳遞給?array_map()?函數(shù)的數(shù)組數(shù)目一致。

標(biāo)簽: PHP
相關(guān)文章:
主站蜘蛛池模板: av综合网站 | 在线中文av| 欧美成人综合 | 欧美中文字幕在线观看 | 日韩一区中文字幕 | 亚洲激情视频在线观看 | 一级片在线视频 | 日韩av导航 | 自拍偷拍欧美日韩 | 欧美日韩小视频 | 五月天色综合 | 国产女人水真多18毛片18精品 | 夜夜夜夜操 | 91成人小视频 | 欧美精品一级片 | 在线播放亚洲 | 日韩三级精品 | 日韩av在线一区二区 | 亚洲精品在线视频 | 日日夜夜精品视频免费 | 天天天天操 | 91狠狠综合 | 黄色三级视频在线观看 | 久久久久久久网 | 九九视频免费观看 | 国产精品免费在线 | 午夜视频免费看 | 99热99| 成人免费福利 | 亚洲精品一区二三区不卡 | 蜜桃色999 | 最近中文字幕在线观看 | 99久久99| 欧美国产视频 | av黄色片| 国产日韩免费 | 国产成人三级在线观看 | 免费福利片 | 女同一区二区三区 | 国产精品久久久久久无人区 | 国产精品婷婷 |