MVC автоматически защитит ваше приложение от некоторых html-инъекций и межсайтовых скриптов (XSS) атак. Вот почему по умолчанию при попытке опубликовать html / javascript вы получите «потенциально опасное значение Request.Form, обнаруженное на клиенте (...)».
Однако иногда мы можем разрешить нашим пользователям публиковать html. Возможно, вы просто захотите позволить пользователям использовать такие символы, как «› », или это может быть связано с тем, что вы реализуете функциональность блога и хотите поддерживать теги, такие как‹ h1 ›,‹ div ›и т. Д. Это можно легко сделать с помощью MVC, отключив проверка запроса.
Добавьте атрибут [ValidateInput(false)]
к методу действия в контроллере, который вы вызываете. Это отключит проверку запроса для всей модели по конкретному действию.
Другой способ - добавить атрибут [AllowHtml]
к свойству, для которого требуется html в вашей модели.
Эти два атрибута позволят только html / javascript войти в ваше приложение, но MVC все равно будет безопасно выводить их, используя html-кодировку. Если вы хотите вывести его в формате html, вы можете использовать @Html.Raw (@ Model.Content). Но используйте это с осторожностью, поскольку это откроет ваше приложение для атак с использованием межсайтовых скриптов (XSS !)
я нашел это решение из чьего-то блога
см. Также код ниже для вашего решения
вы можете обрабатывать ошибки в вашем приложении следующим образом
1. Настройка раздела режима CustomErros в файле Web.Config вашего приложения
Это списки параметров, которые может принимать атрибут mode.
RemoteOnly: Для удаленных пользователей отображаются общие страницы ошибок. Богатые страницы ошибок показаны для локальных запросов (запросов, сделанных с текущего компьютера). Это настройка по умолчанию.
Выкл .: Богатые страницы ошибок отображаются для всех пользователей, независимо от источника запроса. Этот параметр полезен во многих сценариях разработки, но его не следует использовать в развернутом приложении.
Вкл .: Общие страницы ошибок отображаются для всех пользователей, независимо от источника запроса. Это самый безопасный вариант.
<System.Web>
//map all the erros presented in the application to the error.aspx webpage
<customErrors mode="RemoteOnly" defaultRedirect ="~/error.aspx" />
<System.Web>
2. через файл Global.asax в функции Application_Error
//handle all the errors presented in the application
void Application_Error(object sender, EventArgs e){
Server.Tranfer("error.aspx");
}
Я надеюсь, что это работает для вас.
из решение stackoverflow