深入PHP magic quotes的詳解

2022-10-06 13:06:13 字數 1203 閱讀 4179

特地檢視了下手冊,關於php  magic quotes,常見的幾個設定如下,magic_quotes_gpc,magic_quotes_sybase,magic_quote_runtime,這幾個函式是在php.ini中去配置的,從手冊中可程式設計客棧以看出從php5.3後已經廢除了這些特性,所以強烈大家不要使用,在php.ini中關閉它。

這些函式的作用是對資料進行轉義。防止sql注入的時候,很多人會這樣寫:

複製** **如下:

if(!get_magic_quotes_gpc())

如果開啟了它們,會自動給你轉義單引號(')、雙引號(")、反斜線(\)與 nul(null字元),其實就相當於呼叫addslashes函式。你可能會說這樣不是很好嘛,安全性更高了,但是,你考慮**移植性了嗎?另外,對於上所有gpc($_get,$_post,$_cookie)的資料你都進行轉義是否有必要?開銷有多大?下面php點點通(phpddt.com)就對手冊中關於magic quotes的詳細說明:

1.magic_quotes_gpc

magic_quotes_gpc這個是用來設定gpc($_get、$_post、$_cookie)的魔術引用狀態(在php4中也包含$_env)。當開啟時,所有的單引號(single-quote),雙引號(double 程式設計客棧quote),反斜線(backslash)和nul's會被反斜線自動轉義。當開啟magic_quote_sybase為on時,只有單引號(singgle-quote)會被單引號轉義為'',雙引號、反斜線(backslash)和nul's不受影響不會被轉義。

2.magic_quote_runtime

magic_quote_runtime如果開啟該選項,許多返回外部資料(資料庫、文字)的函式將會被反斜線(backslash)轉義。如果也開啟magic_quote_sybase,則只有單引號(single-quote)會被單引號轉義。

3.magic_quotes_sybase

magic_quotes_sybase如果設定此選項開啟、在magic_quotes_gpc,magic_quotes_ru程式設計客棧ntime開啟的情況下單引號『會被單引號'轉移而不是被反斜線\轉義。同時、此設定會完全覆蓋magic_quotes_gpc的設定,即使magic_quotes_gpc被設定為on,雙引號「、反斜線\和nul's也不會被轉義。

本文標題: 深入php magic quotes的詳解

本文位址: /wangluo/php/96711.html

深入篇 decltype深入分析

int fun int main void double tempa 3.0 const double ctempa 5.0 const double ctempb 6.0 const double const cptrtempa ctempa 1.dcltempa推斷為const double 保...

koa redux middleware 深入解析

對於現有的一些框架比如koa,express,redux,都需要對資料流進行一些處理,比如koa,express的請求資料處理,包括json.stringify,logger,或者一些安全相關的處理都需要在資料流中進行,還比如redux的整個資料的修改,支援中介軟體來擴充套件使用者對於資料修改的支援...

python深入 Python的深入理解

處理檔案和目錄 python 3 帶有乙個模組叫做 os,代表 作業系統 operating system os 模組 包含非常多的函式用於獲取 和修改 本地目錄 檔案程序 環境變數等的資訊。python 盡最大的努力在所有支援的作業系統上提供乙個統一的api,這樣你就可以在保證程式能夠在任何的計算...