zoukankan      html  css  js  c++  java
  • MVC:从客户端中检测到有潜在危险的 Request.Form 值 的解决方法

    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中才有用。

  • 相关阅读:
    Django项目上线的准备工作
    Centos安装MySQL5.6并重置密码
    Centos7.4下安装Python3
    Django单表查询及其方法
    thinkphp 视图模型使用分析
    thinkphp 统计某个字段不重复数 总数
    表结构相同的表,且在同一数据库 数据复制
    crontab 定时任务 每过多少分钟执行
    js event事件
    shell 验证ip
  • 原文地址:https://www.cnblogs.com/KKSoft/p/7137131.html
Copyright © 2011-2022 走看看