asp.net дезинфицирует ввод пользователя - PullRequest
2 голосов
/ 22 октября 2009

Есть ли в asp.net встроенный механизм, который может дезинфицировать весь ввод текстового поля вместо перенаправления на страницу ошибки?

У меня есть текстовое поле ввода, где пользователь может ввести имя, но если они пытаются ввести теги <>, страница автоматически выдает ошибку. Я просто хочу обработать эту ошибку удобным для пользователя способом.

Ответы [ 4 ]

3 голосов
/ 22 октября 2009

Для этого вам понадобится библиотека AntiXSS . Это dll, поэтому его легко зайти и начать его использовать.

Загрузка находится в CodePlex .

2 голосов
/ 22 октября 2009

Вы можете использовать элемент управления ASP.NET RegularExpressionValidator с шаблоном вроде: ^[^<>]*$

<asp:RegularExpressionValidator ID="rev" runat="server"
    ControlToValidate="txtBox"
    ErrorMessage="The <> tags are not allowed!"
    ValidationExpression="[^<>]*" />
<asp:RequiredFieldValidator ID="rfv" runat="server" ControlToValidate="txtBox" 
    ErrorMessage="Value can't be empty" />

RequiredFieldValidator используется вместе с RegularExpressionValidator для предотвращения пустых записей. Если это текстовое поле является необязательным и требует проверки только при вводе чего-либо, вам не нужно использовать RequiredFieldValidator.

Преимущество такого способа состоит в том, что ошибка может быть обработана изящно, а пользователь может быть уведомлен на той же странице.

Однако, если вам нужно сделать это для многих текстовых полей и вы просто хотите представить что-то более приятное, чем страница с ошибкой, вы можете обработать ошибку ValidateRequest, чтобы предоставить более дружеское сообщение и сохранить пользователя на той же странице (а не просто заменить это с пользовательской страницей ошибок). За дополнительной информацией обращайтесь к сообщению Кирка Эванса: Обработка ошибок ValidateRequest на странице (см. Раздел «Переопределение метода OnError»).

0 голосов
/ 22 октября 2009

Прочтите это пошагово: http://yourtahir.wordpress.com/2008/03/28/aspnet-not-allow-html-in-text-boxserver-error-in-application-a-potentialy-dangerous-requestform-value-was-detected/

Вы должны выполнить некоторую работу web.config.

0 голосов
/ 22 октября 2009

ASP.net имеет элементы управления проверкой

[http://msdn.microsoft.com/en-us/library/7kh55542.aspx][1]

Также имеется Mark Down Editor , который является элементом управления, удаляющим HTML-теги и т. Д.

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