За последние 24 часа нас посетили 15642 программиста и 1560 роботов. Сейчас ищут 890 программистов ...

Проверка вводимых данных

Тема в разделе "PHP для новичков", создана пользователем X-Antony, 14 авг 2009.

  1. X-Antony

    X-Antony Активный пользователь

    С нами с:
    14 авг 2009
    Сообщения:
    11
    Симпатии:
    0
    Заранее извините, если тупой вопрос :?
    На сайте пользователь заполняет форму какими-либо текстовыми данными. Скрипт проводит обработку этих данных во избежание различных уязвимостей.

    Первое что приходит на ум - проверить текст на наличие < и >, чтоб текст не обрабатывался, как html-код.

    Сперва думал использовать для этого функцию htmlspecialchars. Эта функция успешно заменит символы < > & и т д.

    Но тогда получается если пользователь введет в форму текст с нестандартными символами, допустим La Décadence de la décadence, получится что этот текст обработается дважды. Форма воспримет текст, заменив нестандартные буквы (é на é), а потом уже функция htmlspecialchars обработает текст и в результате получится &amp;#233; чтоменя не устраивает

    В результате отказался от этого варианта и сделал такую проверку:
    Код (Text):
    1.  
    2. $str = str_replace('<', '&lt;', $str);
    3. $str = str_replace('>', '&gt;', $str);
    Достаточно ли этого для избежания уязвимостей, или есть какие-то способы получше?
     
  2. mawa

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

    С нами с:
    23 сен 2008
    Сообщения:
    100
    Симпатии:
    0
    Думаю что достаточно.