3.3.3 Настройка Magic Quotes
Magic Quotes – это функциональность, которая была впервые введена в PHP для автоматического экранирования кавычек и обратных слешей (\
) в данных, отправленных через HTTP-запросы. Это было разработано для защиты от SQL-инъекций и других атак на безопасность. Функция автоматически добавляет обратный слеш перед каждой кавычкой и обратным слешем в переменных, поступающих через HTTP-запросы ($_GET
, $_POST
и $_COOKIE
) в скрипты PHP.
Magic Quotes были предназначены для упрощения обработки данных, поступающих через HTTP-запросы, и уменьшения риска SQL-инъекций. Однако их автоматическое применение может привести к непредсказуемому поведению, поэтому использование этого механизма считается устаревшим и не рекомендуется. Из версии PHP 7.4 расширение Magic Quotes стало устаревшим, а в версии PHP 8.0 было официально изъято. Выключение Magic Quotes позволяет обеспечить большую гибкость и безопасность в программах PHP, позволяя контролировать обработку и экранирование данных вручную.
Настройка Magic Quotes
В зависимости от режима работы PHP Вашего сайта (PHP как CGI или PHP как Apache), управлять расширением можно с помощью файлов php.ini
или .htaccess
. Подробнее о файле конфигуации php.ini.
Magic Quotes включен по умолчанию только на версии PHP 5.2 и 5.3, для отключения нужно выполнить следующие действия:
1. Если PHP для WWW-домена установлен в режиме CGI.
- Войдите под пользователем в менеджер файлов в папку php-bin.
- Установите права 600 для файла php.ini
- В файле php.ini укажите следующие строки:
magic_quotes_gpc = Off
magic_quotes_runtime = Off
magic_quotes_sybase = Off
2. Если для WWW-домена PHP включен в режиме модуля Apache, то укажите в файле ~/www/имя_домена/.htaccess
следующие строки.
php_flag magic_quotes_gpc Off
php_flag magic_quotes_runtime Off
php_flag magic_quotes_sybase Off
Важно: расширение по умолчанию активируется только для версий PHP 5.2 и 5.3. Однако, начиная с версии PHP 7.4, это расширение считается устаревшим и было удалено в версии PHP 8.0. Официальная документация.