Проверьте наличие скрипта в текстовом поле asp.net. - PullRequest
5 голосов
/ 15 сентября 2009

Мы хотели бы запретить пользователям вводить html или javascript в текстовое поле.

Мы можем просто проанализировать ввод и проверить скобки ангела. Интересно, есть ли лучший способ сделать это?

Ответы [ 5 ]

5 голосов
/ 15 сентября 2009

Я обнаружил, что замена ангельских скобок закодированными ангельскими скобками решает большинство проблем. Вот ссылка для всех способов межсайтового скриптинга. Сделать регулярное выражение, чтобы остановить любой вкус HTML и / или Script, чертовски почти невозможно.

3 голосов
/ 15 сентября 2009

Если вы установите Page.ValidateRequest = true, это остановит это.

Начиная с версии .net 1.1 (я думаю) по умолчанию установлено значение true.

2 голосов
/ 15 сентября 2009

Можете ли вы использовать валидатор регулярных выражений для проверки ввода?

1 голос
/ 15 сентября 2009

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

0 голосов
/ 15 сентября 2009

Я наткнулся на эту HTML-утилиту. Код использует белый список тегов, которые разрешено вводить. Затем сценарий форматирует входной текст и удаляет теги и сценарии, которые можно использовать для атак с использованием межсайтовых сценариев.

Для ваших целей у вас не может быть никаких тегов в белом списке.

Html утилита

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...