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