Сейчас ещё актуальны методы magic quotes и escape string? Спрашиваю в связи вот с этим объявлением: http://ua2.php.net/manual/en/security.magicquotes.php (и тут). Имеет ли смысл применять эти средства?
Мэджик квотес бесят и мешают. Эскейпят при записи в бд через майэскуэл_риал_эскейп При выводе в хтмл в нужных местах хэтэмэлээскейпчарс.
Нет. На некоторых хостингах да, но на нормальных они были не актуальны ещё со времён РНР-4.3 Со времён РНР-5.0 не актуальны даже они, появились MySQLi и PDO
если используешь механизм подстановки в PDO/MySQLi, то эскейпить не нужно. В остальных случаях нужно. magic_quotes на фиг
Vladson Я пользуюсь mysqli, там название у экранирующей функции почти такое же. Новичкам понятнее процедурно, поэтому на форуме я всегда называю ее. А кто знает - тот поймет.
Что касается mysqli - там можно и не экранировать, если использовать параметризированные запросы. Но, по-моему, с ними только больше кода и меньше ясности становится.
Нужно обязательно. Если не уверен на сто процентов, включено или нет magic_quotes на сервере или предполагается, что скрипт будет часто переезжать с хостинга на хостинг и неизвестно, какие настройки будут на сервере, на котором скрипт окажется завтра - то есть смысл не только экранировать вручную, но ещё и проверять включен ли этот самый magic_quotes. Что-то типа такого: http://www.php.ru/forum/viewtopic.php?p=289899#289899
alex455 То есть если использую mysql вместо mysqli, то эскейпить вручную всё же нужно? я не использую приблуды и запросы пишу вручную. значит эскейпить надо =)
А, может, проще будет поместить htaccess в корневую директорию сайта с отключением magic quotes чем в каждом скрипте условие проверки писать?
Проще. Зависит от задачи. Те, у кого он включен, скорее всего об этом не подозревают. Плюс есть нгинкс, который htaccess не понимает.
И даже на апаче не всегда работает (только если CGI и то некоторые хостеры отрубают изменение настроек)