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