За последние 24 часа нас посетили 17069 программистов и 1297 роботов. Сейчас ищут 1422 программиста ...

Magic quotes или escape string ещё применяются?

Тема в разделе "PHP для новичков", создана пользователем alex455, 3 янв 2012.

  1. alex455

    alex455 Активный пользователь

    С нами с:
    27 май 2011
    Сообщения:
    63
    Симпатии:
    0
    Сейчас ещё актуальны методы magic quotes и escape string? Спрашиваю в связи вот с этим объявлением: http://ua2.php.net/manual/en/security.magicquotes.phpтут). Имеет ли смысл применять эти средства?
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Мэджик квотес бесят и мешают.

    Эскейпят при записи в бд через майэскуэл_риал_эскейп

    При выводе в хтмл в нужных местах хэтэмэлээскейпчарс.
     
  3. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Нет.

    На некоторых хостингах да, но на нормальных они были не актуальны ещё со времён РНР-4.3

    Со времён РНР-5.0 не актуальны даже они, появились MySQLi и PDO
     
  4. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    если используешь механизм подстановки в PDO/MySQLi, то эскейпить не нужно. В остальных случаях нужно.

    magic_quotes на фиг
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Vladson
    Я пользуюсь mysqli, там название у экранирующей функции почти такое же. Новичкам понятнее процедурно, поэтому на форуме я всегда называю ее. А кто знает - тот поймет.
     
  6. alex455

    alex455 Активный пользователь

    С нами с:
    27 май 2011
    Сообщения:
    63
    Симпатии:
    0
    То есть если использую mysql вместо mysqli, то эскейпить вручную всё же нужно?
     
  7. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Что касается mysqli - там можно и не экранировать, если использовать параметризированные запросы. Но, по-моему, с ними только больше кода и меньше ясности становится.
     
  8. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Нужно обязательно.
    Если не уверен на сто процентов, включено или нет magic_quotes на сервере или предполагается, что скрипт будет часто переезжать с хостинга на хостинг и неизвестно, какие настройки будут на сервере, на котором скрипт окажется завтра - то есть смысл не только экранировать вручную, но ещё и проверять включен ли этот самый magic_quotes. Что-то типа такого:

    http://www.php.ru/forum/viewtopic.php?p=289899#289899
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    alex455
    То есть если использую mysql вместо mysqli, то эскейпить вручную всё же нужно?
    я не использую приблуды и запросы пишу вручную. значит эскейпить надо =)
     
  10. alex455

    alex455 Активный пользователь

    С нами с:
    27 май 2011
    Сообщения:
    63
    Симпатии:
    0
    А, может, проще будет поместить htaccess в корневую директорию сайта с отключением magic quotes чем в каждом скрипте условие проверки писать?
     
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Проще. Зависит от задачи. Те, у кого он включен, скорее всего об этом не подозревают. Плюс есть нгинкс, который htaccess не понимает.
     
  12. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    И даже на апаче не всегда работает (только если CGI и то некоторые хостеры отрубают изменение настроек)