Описание тега magic-quotes-gpc
Когда magic_quotes_gpc
включен в конфигурации PHP, PHP использует метод, идентичный addslashes()
автоматически вставлять обратную косую черту перед определенными проблемными символами (\
, '
, "
, а также \0
) в значениях GET/POST/COOKIE перед их передачей в сценарий. Намерение состояло в том, чтобы уменьшить вероятность возникновения ошибки при интерполяции непосредственно в HTML или SQL, что позволило разработчикам PHP писать более безопасный код без изменения своих привычек.
Однако их многочисленными недостатками является то, что если скрипт действительно экранирует данные, предполагая, что магические кавычки отключены, он часто ломается, когда эта опция включена; результирующие данные часто будут иметь видимую обратную косую черту. Чтобы работать в обоих направлениях, сценарию необходимо удалить добавленные обратные слеши (используя stripslashes()
) если и только если включены магические кавычки. Большинство проблем в наши дни связано либо с двойным экранированием, вызванным магическими кавычками, либо с отключением опции на серверах / хостах, у которых включена эта неправильная загрузка и которые не допускают изменений конфигурации.
Магические кавычки устарели, начиная с PHP 5.3, и полностью удалены с 5.4. Даже в версиях, которые все еще поддерживают их, их использование не рекомендуется. Рекомендуемый порядок действий - вместо этого избегать данных по мере необходимости, используя метод, соответствующий предполагаемому месту назначения данных.
Больше чтения: