可能是从客户端检测到危险的Request.Form值(Potentially dangerous R

2019-07-29 15:53发布

我运行一个ASP.Net MVC应用程序,并面临着以下错误。 由于我是新来的ASP.Net,可能有人请帮助我,什么意思,我怎样才能解决这个问题?

我试着用搜索引擎去了解它,但发现它给我留下了更多的困惑同样的错误不同的答案。

异常捕获Global.asax中:System.Web.HttpRequestValidationException(0X80004005):从客户端检测到有潜在危险的Request.Form值(ctl00 $ $搜索Maincontent $ WarningCtl1 TXTWarningText =”

这是warni ...“)。在System.Web.HttpRequest.ValidateString(字符串值,字符串collectionKey,RequestValidationSource requestCollection)在System.Web.HttpRequest.ValidateNameValueCollection(NameValueCollection中雷士,RequestValidationSource requestCollection)在System.Web.HttpRequest。 get_Form()在System.Web.HttpRequest.get_HasForm()在System.Web.UI.Page.GetCollectionBasedOnMethod(布尔dontReturnNull)在System.Web.UI.Page.DeterminePostBackMode()在System.Web.UI.Page.ProcessRequestMain(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)在System.Web.UI.Page.ProcessRequest(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)在System.Web.UI.Page.ProcessRequest()在System.Web.UI.Page.ProcessRequest(HttpContext的上下文)在ASP.app_config_appttypes_groupappttypes_aspx.ProcessRequest在System.Web.Http(HttpContext的上下文)在System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() Application.ExecuteStep(IExecutionStep步骤,布尔逻辑completedSynchronously)

请建议。

Answer 1:

您需要将添加ValidateInputAttribute到控制器(它适用于所有的该控制器的操作方法,所以要小心):

[ValidateInput (false)]
public class MyController : Controller { ... }

或者你的操作方法:

public class MyOtherController : Controller
{
    [ValidateInput (false)]
    public ActionResult MyActionMethod (MyObjectThatTakesInHtml myObject)
    { ... }
}

编辑

作为@dotjoe指出,我忘了提,你也有机会获得AllowHtmlAttribute (中发现的System.Web.Mvc对模型中的属性)。

public class MyObjectThatTakesInHtml
{
    [AllowHtml]
    public string MyHtmlProperty { get; set; }
}


Answer 2:

  • 编码在客户端级别,并在服务器级别解码

脚步

1.Post形式使用jquery提交方法。

jQuery的按钮,单击要发布到服务器事件方法编码领域。 例

$("#field").val(encodeURIComponent($("#field").val())) $("#formid").submit();

在控制器级别访问值的所有形式的ID使用

HttpUtility.UrlDecode(Request["fieldid"])

确保控制器方法不具有参数。



Answer 3:

MVC

添加属性来操作[ValidateInput(假)]

并确认web.config中的System.Web中设置



文章来源: Potentially dangerous Request.Form value was detected from the client