Сори, если подобный вопрос уже возникал на форуме. Никогда особо не задавался этим вопросом, но случайно он встал передо мною
Вопрос в следующем: имеем форму для отправления сообщений на почту. Если пользователь не заполнил обязательное поле, то мы заносим данные других заполненных полей в сессионные переменные, возвращаем пользователя на страницу с формой и предлагаем дозаполнить ее. При этом заполненные данные выводим в соответствующих полях формы (сессионные переменные). Всегда вывод пользовательских данных обрабатывал ф-цией htmlspecialchars();, но вот недавно обнаружил, что если не обрабатывать данные (которые выводим именно как значения полей формы) этой функцией, то вроде ничего страшного и не происходит - код не выполняется, а выводится в том же виде, как его ввел пользователь. При этом не только в текстовых полях код не выполняется, но и в текстовой области.
В сети ответа на вопрос выполняется ли код в полях формы не нашел. У кого-какие соображения на этот счет?
Спустя 3 минуты, 30 секунд (16.02.2011 - 14:53) DmitryOpalev написал(а):
Нет.
Так то проверить не сложно
Так то проверить не сложно
Спустя 30 минут, 12 секунд (16.02.2011 - 15:23) matroskin написал(а):
Проверить-то не сложно. Всегда и проверял
Просто вот не проверил и сделал для себя открытие такое )) Т.е., получается, что те данные, которые мы не собираемся выводить вне полей, можно и не обрабатывать...
Просто вот не проверил и сделал для себя открытие такое )) Т.е., получается, что те данные, которые мы не собираемся выводить вне полей, можно и не обрабатывать...
Спустя 12 минут, 28 секунд (16.02.2011 - 15:35) DmitryOpalev написал(а):
Стоп... я похоже не понял...
Вообщем, так:
Любый данные, принимаемы от пользователя надо выводить htmlspecialchars(), даже в поле, textarea или просто так...
Вообщем, так:
Любый данные, принимаемы от пользователя надо выводить htmlspecialchars(), даже в поле, textarea или просто так...
Спустя 7 минут, 12 секунд (16.02.2011 - 15:43) matroskin написал(а):
Так вопрос и состоит в том что те данные, полученные методом post и вставляемые как значения полей формы не выполняются браузером как код именно в форме. Самый простой пример:
Когда мы выводим необработанные данные под формой, то код, конечно же, выполняется. Эти же данные выведенные в качестве значения поля - не выполняются... пробовал на примерах:
и
Собственно, продублирую вопрос, код в полях формы не выполняется или я чего-то упускаю?
<form method="post">
<input type="text" name="test" value="<?php echo $_POST['test']; ?>" />
<input type="submit" name="submit" />
</form>
<?php
echo $_POST['test'];
?>
Когда мы выводим необработанные данные под формой, то код, конечно же, выполняется. Эти же данные выведенные в качестве значения поля - не выполняются... пробовал на примерах:
<h1>test</h1>
и
<script>alert(1)</script>
Собственно, продублирую вопрос, код в полях формы не выполняется или я чего-то упускаю?
Спустя 10 минут, 42 секунды (16.02.2011 - 15:53) Zerstoren написал(а):
А прием почты у вас идет как
text/plain
или
text/html
?
если как text/html
То используйте htmlspecialchars() иначе толку нету.
text/plain
или
text/html
?
если как text/html
То используйте htmlspecialchars() иначе толку нету.
Спустя 2 минуты, 7 секунд (16.02.2011 - 15:55) matroskin написал(а):
Прием почты - обычный текст (text/plain), т.е., теги не страшны... но суть, в общем-то, не в этом - сейчас интересует вывод именно в качестве значений полей.
Спустя 7 минут, 11 секунд (16.02.2011 - 16:03) twin написал(а):
Цитата |
сейчас интересует вывод именно в качестве значений полей. |
Вот это введи:
"><iframe src="http://sex.com" >
Спустя 4 минуты, 43 секунды (16.02.2011 - 16:07) matroskin написал(а):
twin, осознал, спс