欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ASP.NET MVC(Razor)从客户端中检测到有潜在危险的 Request.Form 值

程序员文章站 2022-03-28 18:49:56
当使用前端编辑器时,我们需要传递带有html标签的文本字符串,后台接收参数时,会有安全分险提示,导致报错。 这是因为编辑器带有html标记或脚本字符,该数据表示...

当使用前端编辑器时,我们需要传递带有html标签的文本字符串,后台接收参数时,会有安全分险提示,导致报错。

ASP.NET MVC(Razor)从客户端中检测到有潜在危险的 Request.Form 值

这是因为编辑器带有html标记或脚本字符,该数据表示存在危及应用程序安全的值,如跨站点脚本攻击xss等。

后台代码错误原因:

        [HttpPost] 
        [ValidateInput(false)]
        public ActionResult PublishCommit()
        {
            AjaxResult result = new AjaxResult();
            result.result = false;
            try
            {
                var title = Request.Form["Title"]; 
                var desc = Request.Form["Description"];

字段参数“Description”含有潜在风险,包含有html标签或者脚本,可能会产生跨站脚本攻击xss等风险。

一般我们会在action的方法上添加标签[ValidateInput(false)]也不管用,还是报错;

查阅了网上一些资料,说是这个特性只适合mvc3.0或以下低版本,还需要在web.config中配置:

<system.web>
    <authentication mode="None" />
    <compilation debug="true" targetFramework="4.5.2" />
    <httpRuntime targetFramework="4.5.2" requestValidationMode="2.0"/>


如上代码,需要添加结点httpRuntime中加入requestValidationMode="2.0"配置。

经过测试,确实可以了。