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