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 укажите следующие строки:
php.ini
magic_quotes_gpc = Off
magic_quotes_runtime = Off
magic_quotes_sybase = Off

2. Если для WWW-домена PHP включен в режиме модуля Apache, то укажите в файле ~/www/имя_домена/.htaccess следующие строки.

.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. Официальная документация.