Если посмотреть на название этой директивы, можно подумать, что magic_quotes
применяются только к $_COOKIE
$_GET
, $_POST
и $_COOKIE
но есть один возмущающий комментарий к PHP Manual :
Обратите внимание, что когда
magic_quotes_gpc
установлен не только значения$_POST
,$_GET
,$_COOKIE
значения массива$_COOKIE
. Фактически каждое строковое значение в массиве$GLOBALS
сокращается, т.е.$GLOBALS['_SERVER']['PATH_INFO']
(или$_SERVER['PATH_INFO']
).
- Использование get_magic_quotes_gpc в PHP версии 5.2.14 или эквивалент для PHP версии 6
- Антидот для magic_quotes_gpc ()?
- Невозможно обновить функциональную ошибку
- получить un espeded POST, а не магические цитируемые значения в wordpress?
- Как удалить магические кавычки, если php.ini / .htaccess не редактируются?
Может ли кто-нибудь подтвердить, что это правда? $_ENV
влияют $_ENV
$GLOBALS
, $_SERVER
, $_FILES
, $_SESSION
и $_ENV
?
Еще один вопрос: если я повторяю stripslashes()
над массивами $_GET
, $_POST
и $_COOKIE
, мне также нужно перебирать массив $_REQUEST
? Или изменения автоматически отражаются?
В любом случае я бы посоветовал вам не полагаться на GPC, поскольку он устарел на новых версиях PHP …
Возможно, это не слишком актуально для вашего вопроса, но по поднятой проблеме альтернатив безопасности SQL я обычно использую подготовленные операторы + mysql_real_escape_string для MySQL.
Чтобы сделать его близким к совершенству, он включает в себя несколько функций, так как он также должен поддерживать целочисленные, логические и нулевые значения, но вы можете взглянуть на исходный код в классах Database и Database_mysql на NaturePhp .
Я провел несколько тестов на LightTPD 1.4.20
и PHP 5.3.0
с magic_quotes_gpc = On
и $_SERVER
не был изменен (по крайней мере [SERVER_NAME] => local'host
не был). $_SESSION
не влияет на $_SESSION
.
Были затронуты $_GET
, $_POST
, $_COOKIE
и $_COOKIE
(и их $GLOBALS
аналоги).
Кроме того, изменения в суперглобалях GPC
автоматически не отражаются в $_REQUEST
.
Что касается $_FILES
и $_ENV
я не могу проверить их ATM.
Я, наконец, прошел этот тест, и, к моему удивлению, $_FILES
как $_FILES
и php://input
.