Почему Magic Quotes была удалена из PHP 5.4?

Каковы технические причины, по которым Magic Quotes был удален из PHP 5.4?

Из документов PHP

Производительность

Производительность. Поскольку в каждую базу данных вставлена ​​не каждая часть экранированных данных, существует потеря производительности для экранирования всех этих данных. Простое выполнение функций эвакуации (например, addslashes()) более эффективно. Хотя php.ini-development позволяет эти директивы по умолчанию, php.ini-production отключает его. Эта рекомендация в основном обусловлена ​​соображениями производительности.

Есть ли другая причина, по которой Magic Quotes был удален из PHP?

Ответы

Ответ 1

это очень хорошо объяснено, почему устаревший в руководстве chao

Процитировать комментарий chao

Сама причина, по которой магические кавычки устарели, заключается в том, что подход к экранированию/цитированию с одним размером подходит для всех, является неправильным и совершенно опасным. Различные типы контента имеют разные специальные символы и разные способы их избежать, а то, что работает в одном, имеет побочные эффекты в другом месте. Любой пример кода, здесь или где-либо еще, который претендует на работу подобно магическим кавычкам - или делает аналогичное преобразование для HTML, SQL или что-то еще в этом отношении - аналогично неправильно и опасно.

Волшебные кавычки не для безопасности. Они никогда не были. Это удобная вещь - они существуют, так что PHP noob может перебираться и, в конечном итоге, писать некоторые запросы mysql, которые могут работать, без необходимости правильно изучать экранирование/цитирование данных. Они предотвращают несколько случайных ошибок синтаксиса, как и их работа. Но они не остановят злонамеренного и полузнающего злоумышленника от разрушения базы данных PHP noob. И этот бедный нуб, возможно, даже не знает, как и почему его база данных сейчас ушла, потому что магические кавычки (или его функция spiffy "i'm gonna escape all" ) дали ему ложное чувство безопасности. Ему никогда не приходилось изучать, как реально обрабатывать недоверенный ввод.

также хорошо читать Википедия: магические цитаты Критика