首页 > 解决方案 > 允许文本框中的 html 和特殊字符。从客户端检测到潜在危险的 Request.Form 值

问题描述

ASP.NET 在请求中检测到具有潜在危险的数据,因为它可能包含 HTML 标记或脚本。这些数据可能表示试图破坏您的应用程序的安全性,例如跨站点脚本攻击。如果这种类型的输入适合您的应用程序,您可以在网页中包含代码以明确允许它

标签: c#asp.net-mvc

解决方案


除非您禁用对给定控制器方法的验证,否则 ASP.NET 将不接受已发布数据中的 HTML。

就像是

[ValidateInput(false)]
[HttpPost]
public ActionResult DoStuff(InputModel model)

另一种方法是在可能包含 HTML 的 InputModel 属性上使用 [AllowHtml]

public class InputModel {
[AllowHtml]
public string HtmlData { get; set; }
public string PlainTextData { get; set; }

最后一种方法是最安全的,它只允许在一个特定属性上使用 HTML。第一种方法允许在 InputModel 类的所有字符串属性上使用 HTML,包括PlainTextData


推荐阅读