Кодировать HTML перед отправкой в ​​контроллер / БД - PullRequest
2 голосов
/ 26 июля 2011

A potentially dangerous Request.Form value was detected from the client (Body="<b></b>").

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

Ответы [ 3 ]

11 голосов
/ 26 июля 2011

Если вы используете .net 4, вы можете украсить свою модель с помощью [AllowHtml], который пропустит только это конкретное свойство.Затем вы можете очистить его в логике контроллера.

public class MyViewModel
{
    public string prop1 { get; set; }

    [AllowHtml]
    public string prop2 { get; set; }
}
7 голосов
/ 26 июля 2011

Почему бы просто не использовать метод HttpUtility.HtmlEncode?

string encodedHTML = HttpUtility.HtmlEncode(unencodedString)

Вы также можете заглянуть в Microsoft Anti-XSS Library .

0 голосов
/ 26 июля 2011

как насчет добавления события javascript к кнопке отправки, которая кодирует текстовые значения перед отправкой формы?

попробуйте encodeURI или encodeUriComponent

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