摘要:可以用檢測(cè)系統(tǒng)設(shè)置。簡(jiǎn)單用法,添加轉(zhuǎn)義過(guò)濾也可以在項(xiàng)目程序初始化時(shí)應(yīng)用該方法構(gòu)造函數(shù)構(gòu)造應(yīng)用程序?qū)ο蟪跏蓟\(yùn)行環(huán)境禁止處理被自動(dòng)轉(zhuǎn)義過(guò)的數(shù)據(jù)解析被轉(zhuǎn)義過(guò)的數(shù)據(jù)配置
magic_quotes_gpc函數(shù)在php中的作用是判斷解析用戶(hù)提示的數(shù)據(jù),如包括有:post、get、cookie過(guò)來(lái)的數(shù)據(jù)增加轉(zhuǎn)義字符“”,以確保這些數(shù)據(jù)不會(huì)引起程序,特別是數(shù)據(jù)庫(kù)語(yǔ)句因?yàn)樘厥庾址?單引號(hào),雙引號(hào),反斜線(xiàn))引起的污染而出現(xiàn)致命的錯(cuò)誤。
在php的配置文件中,有個(gè)布爾值的設(shè)置,就是magic_quotes_runtime,當(dāng)它打開(kāi)時(shí),php的大部分函數(shù)自動(dòng)的給從外部引入的(包括數(shù)據(jù)庫(kù)或者文件)數(shù)據(jù)中的溢出字符加上反斜線(xiàn)。 當(dāng)然如果重復(fù)給溢出字符加反斜線(xiàn),那么字符串中就會(huì)有多個(gè)反斜線(xiàn),所以這時(shí)就要用set_magic_quotes_runtime()與get_magic_quotes_runtime()設(shè)置和檢測(cè)php.ini文件中magic_quotes_runtime狀態(tài)。 為了使自己的程序不管服務(wù)器是什么設(shè)置都能正常執(zhí)行??梢栽诔绦蜷_(kāi)始用get_magic_quotes_runtime檢測(cè)該設(shè)置的狀態(tài)決定是否要手工處理,或者在開(kāi)始(或不需要自動(dòng)轉(zhuǎn)義的時(shí)候)用set_magic_quotes_runtime(0)關(guān)掉該設(shè)置。
magic_quotes_gpc設(shè)置是否自動(dòng)為GPC(get,post,cookie)傳來(lái)的數(shù)據(jù)中的""加上反斜
線(xiàn)??梢杂胓et_magic_quotes_gpc()檢測(cè)系統(tǒng)設(shè)置。如果沒(méi)有打開(kāi)這項(xiàng)設(shè)置,可以使用
addslashes()函數(shù)添加,它的功能就是給數(shù)據(jù)庫(kù)查詢(xún)語(yǔ)句等的需要在某些字符前加上了反斜線(xiàn)。這些字符是單引號(hào)(")、雙引號(hào)(")、反斜線(xiàn)()與 NUL(NULL 字符)。
簡(jiǎn)單用法,添加轉(zhuǎn)義過(guò)濾:
if(!get_magic_quotes_gpc()) { addslashes($prot); }
也可以在項(xiàng)目程序初始化時(shí)應(yīng)用該方法:
/** * 構(gòu)造函數(shù) * * 構(gòu)造應(yīng)用程序?qū)ο? */ protected function __construct() { // 1.初始化運(yùn)行環(huán)境 // 1.1 禁止 magic quotes set_magic_quotes_runtime(0); // 1.2 處理被 magic_quotes_gpc 自動(dòng)轉(zhuǎn)義過(guò)的數(shù)據(jù) if (get_magic_quotes_gpc()) { $in = array(& $_GET, & $_POST, & $_COOKIE, & $_REQUEST); while (list ($k, $v) = each($in)) { foreach ($v as $key => $val) { if (! is_array($val)) { // 解析被轉(zhuǎn)義過(guò)的數(shù)據(jù) $in[$k][$key] = stripslashes($val); continue; } $in[] = & $in[$k][$key]; } } unset($in); } }
php配置:
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/21856.html
摘要:程序?yàn)榱朔雷⑷牖蛘咭绯觯ㄟ^(guò)指令自動(dòng)在雙引號(hào)單引號(hào)反斜杠前面添加反斜杠。用法,輸出的結(jié)果就是去掉反斜杠的。解決辦法就是可以使用函數(shù)進(jìn)行檢測(cè),如果是打開(kāi)的狀態(tài),那么就去除反斜杠,如果是關(guān)閉的狀態(tài),則不去除反斜杠。 PHP程序?yàn)榱朔雷⑷牖蛘咭绯?,通過(guò)PHP 指令 magic_quotes_gpc自動(dòng)在雙引號(hào)、單引號(hào)、反斜杠、NULL前面添加反斜杠。 默認(rèn)PHP 指令 magic_quote...
摘要:由于越來(lái)越多的項(xiàng)目開(kāi)始使用框架,所以,很多的程序員也不在關(guān)心安全的問(wèn)題因?yàn)榭蚣芤呀?jīng)幫我們幾乎完美的處理了但是,個(gè)人認(rèn)為,我們還是需要了解一下常用的安全處理函數(shù)原因簡(jiǎn)單很多小的功能和項(xiàng)目是用不到框架的,我們需要自己解決安全問(wèn)題常用的安全函數(shù)有 由于越來(lái)越多的項(xiàng)目開(kāi)始使用框架,所以,很多的程序員也不在關(guān)心安全的問(wèn)題!因?yàn)榭蚣芤呀?jīng)幫我們幾乎完美的處理了!但是,個(gè)人認(rèn)為,我們還是需要了解一下常...
摘要:中的是配置在中的,他的作用類(lèi)似,就是對(duì)輸入的字符創(chuàng)中的字符進(jìn)行轉(zhuǎn)義處理。描述返回字符串,該函數(shù)可用于清理從數(shù)據(jù)庫(kù)中或者從表單中取回的數(shù)據(jù) php中的magic_quotes_gpc是配置在php.ini中的,他的作用類(lèi)似addslashes(),就是對(duì)輸入的字符創(chuàng)中的字符進(jìn)行轉(zhuǎn)義處理。他可以對(duì)$_POST、$__GET以及進(jìn)行數(shù)據(jù)庫(kù)操作的sql進(jìn)行轉(zhuǎn)義處理,防止sql注入。 對(duì)于PHP...
摘要:原文譯文有用的安全函數(shù)譯者安全是編程非常重要的一個(gè)方面。一起看看中常用的可以確保項(xiàng)目安全的函數(shù)。現(xiàn)在這個(gè)函數(shù)并不被認(rèn)為是安全的,因?yàn)殚_(kāi)源的數(shù)據(jù)庫(kù)可以反向檢查一個(gè)散列值的明文。也不要把絕對(duì)安全寄托在這個(gè)函數(shù)上,否則會(huì)有意想不到的結(jié)果。 showImg(https://segmentfault.com/img/bVksck); 原文:Useful functions to provide...
摘要:所以在各種的開(kāi)發(fā)語(yǔ)言中,都會(huì)提供保證用戶(hù)輸入數(shù)據(jù)安全的函數(shù)。不要笑,我知道這不是一個(gè)和安全相關(guān)的函數(shù),它是在將變量轉(zhuǎn)成整數(shù)類(lèi)型。但是,你可以用這個(gè)函數(shù)讓你的代碼更安全,特別是當(dāng)你在解析,年齡這樣的數(shù)據(jù)時(shí)。 在現(xiàn)代互聯(lián)網(wǎng)中,我們經(jīng)常要 從世界各地的用戶(hù)中獲得輸入數(shù)據(jù)。但是,我們都知道永遠(yuǎn)不能相信那些用戶(hù)輸入的數(shù)據(jù)。所以在各種的Web開(kāi)發(fā)語(yǔ)言中,都會(huì)提供保證用戶(hù)輸入數(shù)據(jù)安全的函數(shù)。在PHP...
閱讀 1828·2023-04-26 02:32
閱讀 576·2021-11-18 13:12
閱讀 2458·2021-10-20 13:48
閱讀 2528·2021-10-14 09:43
閱讀 3840·2021-10-11 10:58
閱讀 3516·2021-09-30 10:00
閱讀 2943·2019-08-30 15:53
閱讀 3496·2019-08-30 15:53