Проверка клиента, которая действует так же, как проверка страницы .NET / предотвращение XSS - PullRequest
5 голосов
/ 09 февраля 2011

У меня есть бесплатная текстовая форма для людей, чтобы отправлять отзывы / запросы поддержки.Иногда люди пропускают в тикете поддержки или журнале ошибок, который содержит что-то, что вызывает валидатор страницы .NET как попытку XSS.Это приводит пользователя к странице ошибки, как будто сайт задохнулся от их ввода.

Желательно, чтобы я предпочел, чтобы страница провела некоторую проверку на стороне клиента, когда они нажимают кнопку «Сохранить» перед тем, как она фактически отправлена.

Есть ли регулярное выражение или какой-то метод, который я могу подключить, который бы выполнял ту же самую базовую проверку на стороне клиента, или мне просто нужно написать регулярное выражение, которое запрещает определенные символы вместе, как < и >

1 Ответ

6 голосов
/ 09 февраля 2011

. Внутренняя CrossSiteScriptingValidation .NET 4.0 использует метод IsDangerousString для сопоставления при следующих условиях:

Если единственное вхождение <или & находится в конце данных публикации, тогда это безопасно.Если за <следует аз, AZ, /,? Или!тогда это небезопасно.Если за символом & стоит знак # (октоторпе!), То это небезопасно. </p>

Это регулярное выражение в javascript должно работать:

/^(?!(.|\n)*<[a-z!\/?])(?!(.|\n)*&#)(.|\n)*$/i
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...