Intereting Posts
Предупреждение: mysqli_connect (): (28000/1045): доступ запрещен для пользователя Создайте таблицу с пробелом в имени в mySQL Как работают сеансы PHP? (а не «как они используются?») Файлы cookie PHP и cURL Самый быстрый способ чтения первой строки из файла PHP – Обычное текстовое письмо Оператор PHP IF для булевых значений: $ var === true vs $ var Есть ли способ, чтобы Behat НЕ выходил из строя на ошибках уведомления PHP? Как использовать ACL для фильтрации списка объектов домена в соответствии с разрешениями определенного пользователя (например, EDIT)? Массив Cookie для недавно просмотренных – необходимо извлечь данные из массива и кепки cookie в 5 идентификаторов Как создать сервер websockets в PHP Классы рамки Laravel недоступны в поставщике данных PHPUnit Почему некоторые мои страницы возвращают 500s на моем сервере XAMPP? Почему псевдоним столбца не работает в доктрине? работающий php на маме

Magic_quotes_gpc = 1, на которые влияют суперглобалы?

Если посмотреть на название этой директивы, можно подумать, что magic_quotes применяются только к $_COOKIE $_GET , $_POST и $_COOKIE но есть один возмущающий комментарий к PHP Manual :

Обратите внимание, что когда magic_quotes_gpc установлен не только значения $_POST , $_GET , $_COOKIE значения массива $_COOKIE . Фактически каждое строковое значение в массиве $GLOBALS сокращается, т.е. $GLOBALS['_SERVER']['PATH_INFO'] (или $_SERVER['PATH_INFO'] ).

Может ли кто-нибудь подтвердить, что это правда? $_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 .