Мы хотели бы запретить пользователям вводить html или javascript в текстовое поле.
Мы можем просто проанализировать ввод и проверить скобки ангела. Интересно, есть ли лучший способ сделать это?
Я обнаружил, что замена ангельских скобок закодированными ангельскими скобками решает большинство проблем. Вот ссылка для всех способов межсайтового скриптинга. Сделать регулярное выражение, чтобы остановить любой вкус HTML и / или Script, чертовски почти невозможно.
Если вы установите Page.ValidateRequest = true, это остановит это.
Начиная с версии .net 1.1 (я думаю) по умолчанию установлено значение true.
Можете ли вы использовать валидатор регулярных выражений для проверки ввода?
Page.ValidateRequest остановит это, если вы не отключили его.
Однако в рекомендациях OWASP (а также практически во всех компетентных правилах безопасности) говорится, что вам НЕ следует пытаться ограничивать количество плохих символов в проверке, но вместо этого следует фильтровать, чтобы использовались только специально разрешенные символы.
http://en.wikipedia.org/wiki/Secure_input_and_output_handling
http://www.owasp.org/index.php/Top_10_2007-A1
Для хорошей практики безопасного кодирования я бы начал здесь и добавил сайт в закладки для дальнейшего использования. http://www.owasp.org/index.php/Top_10_2007
Я наткнулся на эту HTML-утилиту. Код использует белый список тегов, которые разрешено вводить. Затем сценарий форматирует входной текст и удаляет теги и сценарии, которые можно использовать для атак с использованием межсайтовых сценариев.
Для ваших целей у вас не может быть никаких тегов в белом списке.
Html утилита