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. 在应用程序的 Web.Config 文件中设置 CustomErros 模式部分
这是 mode 属性可以接受的选项列表。
RemoteOnly:为远程用户显示一般错误页面。针对本地请求(从当前计算机发出的请求)显示丰富的错误页面。这是默认设置。
关闭:无论请求的来源如何,都会为所有用户显示丰富的错误页面。此设置在许多开发方案中很有帮助,但不应在已部署的应用程序中使用。
On:无论请求的来源如何,都会为所有用户显示一般错误页面。这是最安全的选择。
<System.Web>
//map all the erros presented in the application to the error.aspx webpage
<customErrors mode="RemoteOnly" defaultRedirect ="~/error.aspx" />
<System.Web>
2.通过Application_Error函数中的Global.asax文件
//handle all the errors presented in the application
void Application_Error(object sender, EventArgs e){
Server.Tranfer("error.aspx");
}
我希望这对你有用。
来自stackoverflow解决方案