ValidateInput и AllowHTML непосредственно связаны с вопросами безопасности XSS.
Итак, давайте сначала попробуем понять XSS.
XSS (межсайтовый скриптинг) - это атака безопасности, когда злоумышленник вводит вредоносный код при выполнении ввода данных. Теперь хорошей новостью является то, что XSS по умолчанию помечен в MVC. Поэтому, если кто-то пытается опубликовать JavaScript или HTML-код, он приземляется с ошибкой ниже.

Но в реальном масштабе времени, есть сценарии, где HTML должен быть разрешен, как HTML-редакторов. Таким образом, для этих сценариев вы можете украсить свое действие атрибутом ниже.
[ValidateInput(false)]
public ActionResult PostProduct(Product obj)
{
return View(obj);
}
Но подождите, есть проблема. Проблема в том, что мы допустили HTML на полное действие, которое может быть опасным. Поэтому, если мы можем иметь более подробный контроль над полем или уровнем собственности, который действительно создал бы аккуратное, аккуратное и профессиональное решение.
Вот где AllowHTML полезен. Вы можете видеть в приведенном ниже коде, который я украсил «AllowHTML» на уровне свойства класса продукта.
public class Product
{
public string ProductName { get; set; }
[AllowHtml]
public string ProductDescription { get; set; }
}
Так суммируя «ValidateInput» позволяет сценарии и HTML для размещения на уровне действий, в то время как «AllowHTML» на более детальном уровне.
Я бы рекомендовал использовать «AllowHTML» больше, пока вы не будете уверены, что все действие должно быть обнаженным.
Я бы порекомендовал вам прочитать сообщение в блоге Preventing XSS Attacks in ASP.NET MVC using ValidateInput and AllowHTML, который демонстрирует шаг за шагом о важности этих двух атрибутов с примером.
рад вас видеть здесь сэр. Много ваших сообщений было полезно для меня в проекте кода. –
В вашем примере, если пользователь должен был ввести html в поле «ProductName», ошибка все равно будет отображаться (как и ожидалось). Есть ли способ представить более удобное сообщение об ошибке. Кажется, что эта ошибка игнорирует конфигурацию пользовательской ошибки. – philreed