如果我打開magic_quotes
並且使用mysql_real_escape_string
,字符串是否會被雙重轉義?會造成問題嗎?使用magic_quotes()會影響mysql_real_escape_string()的使用
我假設是基於get_magic_quotes()
函數,但只是尋求確認。
(PS它很容易問這個問題不是在我的辦公室的所有安全測試,我們在的地方 - 我花了10-15的一切配置,以獲得一個可用的環境)
如果我打開magic_quotes
並且使用mysql_real_escape_string
,字符串是否會被雙重轉義?會造成問題嗎?使用magic_quotes()會影響mysql_real_escape_string()的使用
我假設是基於get_magic_quotes()
函數,但只是尋求確認。
(PS它很容易問這個問題不是在我的辦公室的所有安全測試,我們在的地方 - 我花了10-15的一切配置,以獲得一個可用的環境)
如果你逃脫從get/post/cookie輸入獲得的值,它已經有addslashes()
應用於它,所以傳遞它通過mysql_real_escape_string()
實際上,雙引號。
若要去除EM:
if (get_magic_quotes_gpc())
{
$_GET = json_decode(stripslashes(json_encode($_GET, JSON_HEX_APOS)), true);
$_POST = json_decode(stripslashes(json_encode($_POST, JSON_HEX_APOS)), true);
$_COOKIE = json_decode(stripslashes(json_encode($_COOKIE, JSON_HEX_APOS)), true);
$_REQUEST = json_decode(stripslashes(json_encode($_REQUEST, JSON_HEX_APOS)), true);
ini_set('magic_quotes_gpc', 0);
}
This question有剝離報價/對付可怕magic_quotes_gpc
PHP '功能' 一些其他的選擇。
閱讀documentation of mysql_real_escape_string
(我希望這不是困難以及):
注:如果
magic_quotes_gpc
啓用,先申請stripslashes()
的數據。對已經被轉義的數據使用這個函數會將數據轉移兩次。
如果我閱讀文檔,那麼你將不會有任何人在這些論壇貶低,讓你感覺更好的自己... – sjw 2010-04-22 06:25:42
我希望有一種可能downvote評論。 – 2010-04-22 06:30:05
@Col。彈片 - 好吧,也許是通過代理。我剛剛提出了你的評論。 – 2010-04-22 06:33:31
如果我已經magic_quotes的接通和 我用mysql_real_escape_string,將 的特林是雙逃脫?
是的,它會,但你可以做這樣的事情,雖然:
if (get_magic_quotes_gpc())
{
$escaped = stripslashes($your_vars);
}
注:您可以從php.ini中禁用魔術引號或使用下面的函數來覆蓋它:
// no more magic quotes
function get_magic_quotes_gpc()
{
return false;
}
當然,最簡單的方法是關閉magic_quotes。
wuth通常PHP/Apache的配置,這條線
php_flag magic_quotes_gpc 0
在.htaccess
文件會做的事。
但是爲了兼容性的目的,一個函數也可以用在某個配置文件中。
if (get_magic_quotes_gpc()) {
$_GET = array_map_recursive('stripslashes', $_GET) ;
$_POST = array_map_recursive('stripslashes', $_POST) ;
$_COOKIE = array_map_recursive('stripslashes', $_COOKIE) ;
$_REQUEST = array_map_recursive('stripslashes', $_REQUEST) ;
if (isset($_SERVER['PHP_AUTH_USER'])) stripslashes($_SERVER['PHP_AUTH_USER']);
if (isset($_SERVER['PHP_AUTH_PW'])) stripslashes($_SERVER['PHP_AUTH_PW']);
}
最簡單
函數ini_set( 'magic_quotes_gpc的',0)中的一個; - 有趣的一個:) – 2010-04-22 06:16:19
爲什麼不使用通常的array_map_recursive? – 2010-04-22 06:18:56
我對斜槓一無所知......我只發現15分鐘前有什麼magic_quotes ...我試圖瞭解更多一切...... – sjw 2010-04-22 06:26:32