gpt4 book ai didi

c# - "potentially dangerous Request.Form value"

转载 作者:行者123 更新时间:2023-11-30 19:47:05 25 4
gpt4 key购买 nike

我遇到了错误

A potentially dangerous Request.Form value was detected from the client

当我部署我的应用程序时(当我通过本地主机运行时不会发生错误)。

它发生在提交表单时,因为其中一个字段包含 HTML。我在模型中与有问题的表单字段相对应的属性周围添加了 [AllowHtml],但这似乎不起作用。

出于显而易见的原因,我宁愿不在操作方法上使用 [ValidateInput(false)],无论如何,这似乎也不起作用。

我还需要做其他配置吗?我读过添加

<httpRuntime requestValidationMode="2.0"/>

添加到 Web 配置文件可以修复它,但我不想再添加它,因为我仍然希望对应用程序的其他部分进行安全验证。

有什么想法吗?

最佳答案

<罢工> [AllowHtml]要求您添加 <httpRuntime requestValidationMode="2.0"/> (设置这个值并不意味着你没有得到安全验证,它只是验证模式)。站点的其他部分将是安全的,您仅对 View 模型上的特定属性禁用验证。

[ValidateInput(false)]会工作,但正如您所说,它可能不太安全,因为它会禁用对所有属性的验证。

我会坚持使用 [AllowHtml] .


更新:

两者都是 [AllowHtml][ValidateInput(false)]在 ASP.NET MVC 3 中开箱即用,无需添加 <httpRuntime requestValidationMode="2.0"/>在 web.config 中。这在 ASP.NET 4.0 下运行的 ASP.NET MVC 2 中是必需的

这是一个例子:

查看模型:

public class MyViewModel
{
[AllowHtml]
public string Text { get; set; }
}

Controller :

public class HomeController : Controller
{
public ActionResult Index()
{
var model = new MyViewModel
{
Text = "<html/>"
};

return View(model);
}

[HttpPost]
public ActionResult Index(MyViewModel model)
{
return View(model);
}
}

查看:

@model MyViewModel
@using (Html.BeginForm())
{
@Html.TextAreaFor(x => x.Text)
<input type="submit" value="OK" />
}

提交表单时不会抛出异常。

关于c# - "potentially dangerous Request.Form value",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7281673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com