Вывод пользовательского ввода - предотвращение xss

У меня есть раздел администратора на моем сайте, где можно хранить элементы. После сохранения они отображаются в интерфейсе. Часть моего дисплея включает в себя код, подобный следующему:

echo "<p>".$rose['description']."</p>";

Нужно ли включать в него htmlspecialchars для защиты от xss на низком уровне?


person user1278496    schedule 13.04.2012    source источник
comment
Вы проверили себя? Вы могли бы хотя бы проверить <script type="text/javascript">alert("HI");</script> в $row['description'] и посмотреть, выдает ли он предупреждения?   -  person Andreas Wong    schedule 13.04.2012


Ответы (1)


Да, конечно, вы всегда должны очищать пользовательский ввод перед его выводом, чтобы предотвратить XSS-атаки. помните, что вы должны дезинфицировать пользовательский ввод перед его выводом, а не перед сохранением в БД, потому что вам не всегда нужно выводить html

person Nicola Peluchetti    schedule 13.04.2012
comment
(Но подходящая очистка не всегда htmlspecialchars, в зависимости от контекста вывода.) - person DCoder; 13.04.2012
comment
поэтому этого будет достаточно: echo htmlspecialchars ‹p›.$rose['description'].‹/p› - person user1278496; 13.04.2012
comment
@ user1278496 вам понадобится эхо ‹p›. htmlspecialchars ($rose['описание']).‹/p› - person Nicola Peluchetti; 13.04.2012