这个属性是用来验证客户端用户的输入的,用来验证用户的输入中是否有危险字符的,这个属性的默认值为true,微软之所以这么做是为了提高asp.net程序的安全性,所以很多程序员即使不知道怎么来防御黑客的攻击,asp.net的一些默认属性等内容已经对安全进行了控制,这也是为什么asp.net的程序相对来说比较安全的原因!
  既然这个属性的默认值为true,而且asp.net页面的回发又很频繁,那么如果没有用户的交互的地方,这样asp.net 岂不是每次都要去严整呢,这样也是有可能会来回的损耗系统的执行时间的,至于:如果没有客户端的交互的话,到底asp.net会不会去验证这是微软的工程师的问题了,对于我们来说,如果没有客户端交互的地方,我感觉是应该将此属性设置为 false的,这样的话无论 微软的工程师怎样设计,对我们程序的本身是没有任何影响的!
  直接关闭这个属性的方法是:
  1、在aspx页面的属性里写“validaterequest="false"”
  2、在web.config里设置

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

</system.web>
</configuration>

  但是当需要跟用户交互的地方,我们就要用它的默认值了,可是事情可能并没有我们想象的那么简单,也没有那么完美,当用户在使用一些html编辑器的时候,自己本身提交的字符里就有等这样的字符,这样就要求程序员必须要关闭validaterequest 属性,这个时候我们又该怎样的来控制asp.net页面的安全性能呢?
  当然了,这个地方我们可以来对一切危险字符进行过滤,这样可能提高一些安全性,但是我们防止用户的输入可能考虑的会有遗漏,这样就导致了安全还会是有问题的,我们可以反过来考虑我们到底需要提交多少特殊字符,然后对我们提交的特殊字符进行转义或替换,这样我们就又可以将validaterequest的属性设置为true了,这样既解决了程序的安全问题又满足了我们的需求!
  有时候在与用户进行交互的时候,用户难免的会有输入特殊字符的时候,因为我们设置的validaterequest 的值 为true所以页面会不给任何提示的前提下, 直接输出一大页的错误信息, 这样可能就导致了用户的误解,他们可能认为是我们网站出了问题,用户不可能会想到他输入了非法的字符! 对于这种情况我们又该怎么办呢?
  答案是可以使用Page_Error的处理事件:

protected void Page_Error(object sender, EventArgs e)
    {
       Exception ex = Server.GetLastError();
       if (ex is HttpRequestValidationException)
       {
        Response.Write("您输入的字符中有非法字符!");
        Server.ClearError();
        }
     }

1.它所在的命名空间:System.Web.Configuration
2.程序集:System.Web(在 system.web.dll 中)
3.所在的类:pagesSection

至于在最新的MVC模式中如何关闭这个属性,方法如下(超简单):

[ValidateInput(false)]
public ActionResult Index()  
{
    return View();
}
 

ASP.net中的validaterequest相关推荐

  1. asp.net中的validaterequest属性与安全性

    不知道大家之前有没有注意到这个属性,这里我们来一起讨论一下这个属性的作用以及我们以后到底该怎样使用它! 我们先来了解一下这个属性:(注:本属性在.net 2.0中是新增的!) 1.它所在的命名空间:S ...

  2. FCKeditor 在ASP.Net 中的使用说明

    FCKeditor 在ASP.Net 中的使用说明 FCKeditor 是一个运行在浏览器上的 JavaScript 应用程序.他可以不依赖任何服务器端语言运行.不过,更好的使用方法是你使用一种服务器 ...

  3. asp.net中防止攻击的方法

    你应该在程序中验证所有的不信任输入.你应该假定所有的用户输入都是非法的.用户可以在应用程序中提供表单字段,查询字串,客户端cookies和浏览器环境值比如用户代理字串和IP地址等. 弱输入校验通常为注 ...

  4. 在ASP.Net中使用FCKeditor

     在ASP.Net中使用FCKeditor 在ASP.Net中使用FCKeditor 翻译:linqingfeng 日期:2006-5-8 原文地址:http://wiki.fckeditor.net ...

  5. 在ASP.NET中防止注入攻击[翻译]

    应用范围: ASP.NET vertion 1.1 ASP.NET vertion 2.0 概要: 文本主要介绍如何校验用户输入从而防止注入式攻击.校验用户输入是非常必要的,几乎所有程序级的攻击都包含 ...

  6. 在ASP.NET中防止注入攻击

    在ASP.NET中防止注入攻击 出处: MSDN 原文地址 应用范围: ASP.NET vertion 1.1ASP.NET vertion 2.0 概要: 文本主要介绍如何校验用户输入从而防止注入式 ...

  7. (转)CKEditor和CKFinder在ASP.NET中的应用

    CKEditor和CKFinder在ASP.NET中的应用,需要的朋友可以参考下. CKEditor是新一代的FCKeditor,是一个重新开发的版本.CKEditor是全球最优秀的网页在线文字编辑器 ...

  8. ASP.NET中的配置文件

    ASP.NET中的配置文件 原创 2014年10月13日 08:15:27 1199 在机房收费系统的时候曾经应用过配置文件,当时也就那么一用对配置文件了解的不是很透彻,下面就来总结一下有关配置文件的 ...

  9. asp.net中使用开源富文本编辑器xhEditor

    1.首先下载xhEditor源代码文件,这里附上两个不同版本的源代码文件.本教程使用1.1.14版本 自行下载版本 2.在VS中新建解决方案,创建一个Web页面(MVC页面也可),新建两个文件夹.一个 ...

最新文章

  1. pandas生成新的累加数据列、pandas生成新的累加数据列(数据列中包含NaN的情况)、pandas计算整个dataframe的所有数据列的累加
  2. 助力区域性银行突破困局,网易云信入选爱分析报告典型案例
  3. mac中安装activeMQ
  4. C# 9.0 终于来了, Top-level programs 和 Partial Methods 两大新特性探究
  5. 前端学习(2631):git安装
  6. Java-switch选择结构
  7. Docker 命令详解(run篇)
  8. 【LeetCode】12. Integer to Roman 整型数转罗马数
  9. 思杰20140522
  10. Ubuntu 命令大全
  11. Python中fastapi构建的web项目使用.gitlab-ci.yml文件在KubeSphere中进行自动部署
  12. Windows PowerShell 2.0创建调用脚本文件
  13. cuteftp pro 3.2多线程下载导致文件MD5校验值改变
  14. 华为研发工程师编程题:汽水瓶 [python]
  15. 怎样剪立体灯笼_懒人版立体镂空星星折纸灯笼教程
  16. hdu 6184 Counting Stars(三元环计数)
  17. 网络安全技能竞赛之Web安全之综合渗透测试
  18. cmd命令与dos命令
  19. 产品经理学习笔记2 长尾理论
  20. 西瓜书读书笔记(一)-绪论

热门文章

  1. quot;愿有人陪你颠沛流离|Be With Youquot;
  2. [转载]找回被误删的VISTA“显示桌面”图标
  3. unity3d : Failed to query D3D11 context for ID3DUserDefinedAnnotation interface (hr = 0x80004002)
  4. 这次是在没有外网yum仓库的情况下搭建内网yum仓库和无人值守pxe装机
  5. .NET 4.6的RyuJIT编译器中又发现两个严重的Bug
  6. 观察者模式--初学入门
  7. 成员函数指针与高性能的C++委托(三)
  8. jsp 验证码以及验证码局部刷新
  9. Android: BaseAdapter 实现分页
  10. win7 下配置 Qt5.1 for Android