• 【异常记录(七)】MVC:从客户端中检测到有潜在危险的 Request.Form 值 的解决方法 [转] A potentially dangerous Request.Form value was detected from the client


    从客户端(Content="<EM ><STRONG ><U >这是测试这...")中检测到有潜在危险的Request.Form 值。


    说明: 请求验证过程检测到有潜在危险的客户端输入值,对请求的处理已经中止。该值可能指示存在危及应用程序安全的尝试,如跨站点脚本攻击。

    若要允许页面重写应用程序请求验证设置,请将 httpRuntime 配置节中的 requestValidationMode 特性设置为requestValidationMode="2.0"。

    示例: <httpRuntime requestValidationMode="2.0" / >。设置此值后,可通过在 Page 指令或 <pages > 配置节中设置 validateRequest="false" 禁用请求验证。

    但是,在这种情况下,强烈建议应用程序显式检查所有输入。有关更多信息,请参见http://go.microsoft.com/fwlink/?LinkId=153133。 


    原以为就像普通的Asp.net页面一样,在头部的Page中加入ValidateRequest="false"就行了,谁知问题还是存在。

    弄了一个上午,问题终于解决,将解决方法汇总如下:


    1,在出现该错误的页面头部的page中加入ValidateRequest="false",那么该页面的任何一次Post提交都不会再验证提交内容的安全性。 如:

    <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Manage/ViewMasterPageEdit.Master"     Inherits="System.Web.Mvc.ViewPage<MvcWebPhoto.Models.Entities.Article >" 
    ValidateRequest="false" % >
     
     

    2,在web.config中的pages节中配置validateRequest="false",如:

    <system.web > <pages validateRequest="false" ></pages >  </system.web >

    但这样,整个项目中的所有Form请求都不再验证提交内容的安全性,极不提倡这种做法。


    3,如果你使用的是.Net 3.5,MVC 2.0及更高的版本,那么可以在处理Post方法的Action添加一个特性:[ValidateInput(false)],这样处理就更加有针对性,提高页面的安全性。 如:

    [HttpPost] [ValidateInput(false)] public ActionResult CatalogEdit(Catalog model) { return View(); }
     
     
     

    重要: 如果你使用的是MVC 3.0,那么你会发现做了以上的设置后还是无效。这是因为你还需要在web.config中做以下设置:

    <system.web > 
    
    <httpRuntime requestValidationMode="2.0" / >
    
    </system.web >

    注意:在MVC项目中,Views文件夹下与主项目下,都会有一个web.config文件。

    Views下的web.config文件只对Views文件夹下面的文件有效。如果你要处理的页面不在Views下面,

    那么<httpRuntime requestValidationMode="2.0" / >一定要设置在主项目下的web.config中才有用。

    转自:MVC:从客户端中检测到有潜在危险的 Request.Form 值 的解决方法   (仅作笔记和分享,侵删)

  • 相关阅读:
    SQLServer2008设置 开启远程连接
    关于VS 中 HttpHandler 的设置 500.23
    类似谷歌,百度的文本框自动提醒
    MySQL主从配置
    docker 16 dockerfile案例-ONBUILD案例
    docker 15 dockerfile案例-CMD、ENTRYPOINT案例
    docker 14 dockerfile自定义mycentos
    docker 13 dockerfile的保留字指令
    2019年3月1日
    jenkins使用3----相关工具安装
  • 原文地址:https://www.cnblogs.com/hydor/p/5845738.html
Copyright © 2020-2023  润新知