摘要:可以用檢測系統設置。簡單用法,添加轉義過濾也可以在項目程序初始化時應用該方法構造函數構造應用程序對象初始化運行環境禁止處理被自動轉義過的數據解析被轉義過的數據配置
magic_quotes_gpc函數在php中的作用是判斷解析用戶提示的數據,如包括有:post、get、cookie過來的數據增加轉義字符“”,以確保這些數據不會引起程序,特別是數據庫語句因為特殊字符(單引號,雙引號,反斜線)引起的污染而出現致命的錯誤。
在php的配置文件中,有個布爾值的設置,就是magic_quotes_runtime,當它打開時,php的大部分函數自動的給從外部引入的(包括數據庫或者文件)數據中的溢出字符加上反斜線。 當然如果重復給溢出字符加反斜線,那么字符串中就會有多個反斜線,所以這時就要用set_magic_quotes_runtime()與get_magic_quotes_runtime()設置和檢測php.ini文件中magic_quotes_runtime狀態。 為了使自己的程序不管服務器是什么設置都能正常執行。可以在程序開始用get_magic_quotes_runtime檢測該設置的狀態決定是否要手工處理,或者在開始(或不需要自動轉義的時候)用set_magic_quotes_runtime(0)關掉該設置。
magic_quotes_gpc設置是否自動為GPC(get,post,cookie)傳來的數據中的""加上反斜
線。可以用get_magic_quotes_gpc()檢測系統設置。如果沒有打開這項設置,可以使用
addslashes()函數添加,它的功能就是給數據庫查詢語句等的需要在某些字符前加上了反斜線。這些字符是單引號(")、雙引號(")、反斜線()與 NUL(NULL 字符)。
簡單用法,添加轉義過濾:
if(!get_magic_quotes_gpc()) { addslashes($prot); }
也可以在項目程序初始化時應用該方法:
/** * 構造函數 * * 構造應用程序對象 */ protected function __construct() { // 1.初始化運行環境 // 1.1 禁止 magic quotes set_magic_quotes_runtime(0); // 1.2 處理被 magic_quotes_gpc 自動轉義過的數據 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)) { // 解析被轉義過的數據 $in[$k][$key] = stripslashes($val); continue; } $in[] = & $in[$k][$key]; } } unset($in); } }
php配置:
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/21856.html
摘要:程序為了防注入或者溢出,通過指令自動在雙引號單引號反斜杠前面添加反斜杠。用法,輸出的結果就是去掉反斜杠的。解決辦法就是可以使用函數進行檢測,如果是打開的狀態,那么就去除反斜杠,如果是關閉的狀態,則不去除反斜杠。 PHP程序為了防注入或者溢出,通過PHP 指令 magic_quotes_gpc自動在雙引號、單引號、反斜杠、NULL前面添加反斜杠。 默認PHP 指令 magic_quote...
摘要:由于越來越多的項目開始使用框架,所以,很多的程序員也不在關心安全的問題因為框架已經幫我們幾乎完美的處理了但是,個人認為,我們還是需要了解一下常用的安全處理函數原因簡單很多小的功能和項目是用不到框架的,我們需要自己解決安全問題常用的安全函數有 由于越來越多的項目開始使用框架,所以,很多的程序員也不在關心安全的問題!因為框架已經幫我們幾乎完美的處理了!但是,個人認為,我們還是需要了解一下常...
摘要:中的是配置在中的,他的作用類似,就是對輸入的字符創中的字符進行轉義處理。描述返回字符串,該函數可用于清理從數據庫中或者從表單中取回的數據 php中的magic_quotes_gpc是配置在php.ini中的,他的作用類似addslashes(),就是對輸入的字符創中的字符進行轉義處理。他可以對$_POST、$__GET以及進行數據庫操作的sql進行轉義處理,防止sql注入。 對于PHP...
摘要:原文譯文有用的安全函數譯者安全是編程非常重要的一個方面。一起看看中常用的可以確保項目安全的函數。現在這個函數并不被認為是安全的,因為開源的數據庫可以反向檢查一個散列值的明文。也不要把絕對安全寄托在這個函數上,否則會有意想不到的結果。 showImg(https://segmentfault.com/img/bVksck); 原文:Useful functions to provide...
摘要:所以在各種的開發語言中,都會提供保證用戶輸入數據安全的函數。不要笑,我知道這不是一個和安全相關的函數,它是在將變量轉成整數類型。但是,你可以用這個函數讓你的代碼更安全,特別是當你在解析,年齡這樣的數據時。 在現代互聯網中,我們經常要 從世界各地的用戶中獲得輸入數據。但是,我們都知道永遠不能相信那些用戶輸入的數據。所以在各種的Web開發語言中,都會提供保證用戶輸入數據安全的函數。在PHP...
閱讀 1804·2023-04-26 02:32
閱讀 567·2021-11-18 13:12
閱讀 2446·2021-10-20 13:48
閱讀 2515·2021-10-14 09:43
閱讀 3825·2021-10-11 10:58
閱讀 3483·2021-09-30 10:00
閱讀 2932·2019-08-30 15:53
閱讀 3487·2019-08-30 15:53