За последние 24 часа нас посетили 17334 программиста и 1650 роботов. Сейчас ищут 957 программистов ...

Вопрос по htmlspecialchars

Тема в разделе "PHP для новичков", создана пользователем VLK, 26 авг 2014.

  1. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Раньше как то не задумывался над вопросом экранирования в HTML, а сейчас столкнулся с этим, короче есть много полей input и textarea в которых по мимо обыкновенного текста есть и HTML код (а так же JS и PHP), и при выводе этих полей в БД проверяется не заполнены ли эти поля и если заполнены, берется из БД информация и вставляется, т.е. что то типа:

    Код (PHP):
    1. <?php $code = get_info_from_db('my_code'); ?>
    2. <input type="text" name="my_code" <?php echo empty($code) ? '' : "value=\"{$code}\""; ?> />
    если я буду все полученные данные в input и textarea (как заданные значения или значения по умолчанию для вывода) экранировать при помощи htmlspecialchars (даже там, где не предполагается ни каких символов для экранирования) это нормально будет? т.е.:

    Код (PHP):
    1. <?php $code = htmlspecialchars( get_info_from_db('my_code') ); ?>
    2. <input type="text" name="my_code" <?php echo empty($code) ? '' : "value=\"{$code}\""; ?> />
    И еще вопрос, экранированный текст вставился в input или textarea, я его отправил, там на сервере мне надо с ним что то делать? убирать экранирование например, я уже проверил, вроде как текст приходит нормальный и не требует убирания экранирования, но все же лучше уточнить, чем потом думать в чем ошибка.
     
  2. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    нормально для чего?

    а ты попробуй =)
    круто! :D
     
  3. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Так я же описал для чего я собираюсь использовать htmlspecialchars, даже код привел в пример, еще раз тогда повторю на всякий случай, я собираюсь использовать htmlspecialchars только в тех случаях, когда мне надо вывести значение по умолчанию для тегов input или textarea, как показано в коде выше.

    Может бывают такие ситуации когда такое экранирование навредит и я получу не то что мне нужно. Хотя не могу представить такие ситуации, но это скорее от неопытности.

    Вот и интересуюсь у знатоков.
     
  4. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Если выводишь то на что могут повлиять пользователи то экранировать надо тогда не смогут вставить допустим зловредный js код.
    Перед записью в базу нет смысла экранировать htmlspecialchars главное защититься от sql injection.
     
  5. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    нормально

    блин. ты описал ситуацию - ты будешь выводить текст внутри тега. внутри тега нормально использовать htmlspecialchars(). если тебя интересует некая другая ситуация - обознач её конкретно, а не "вдруг бывает". Бывает конечно.
     
  6. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Я понял о чём вы. На сервер эти данные будут приходить без экранирования с таких инпутов.