ASP.NET中validaterequest属性与安全性
创始人
2024-03-22 10:40:59
0

我们先来了解一下validaterequest属性(注:本属性在.net 2.0中是新增的!)

1.它所在的命名空间:System.Web.Configuration

2.程序集:System.Web(在 system.web.dll 中)

3.所在的类:pagesSection

上面我大体了解了一下这个属性,下面我们在具体的分析一下该属性,

这个属性是用来验证客户端用户的输入的,用来验证用户的输入中是否有危险字符的,这个属性的默认值为true,微软之所以这么做是为了提高ASP.NET程序的安全性,所以很多程序员即使不知道怎么来防御黑客的攻击。

ASP.NET的一些默认属性等内容已经对安全进行了控制,这也是为什么ASP.NET的程序相对来说比较安全的原因。既然这个属性的默认值为true,而且ASP.NET页面的回发又很频繁,那么如果没有用户的交互的地方,这样ASP.NET 岂不是每次都要去严整呢,这样也是有可能会来回的损耗系统的执行时间的,至于:如果没有客户端的交互的话,到底ASP.NET会不会去验证这是微软的工程师的问题了。

对于我们来说,如果没有客户端交互的地方,我感觉是应该将此属性设置为 false的,这样的话无论 微软的工程师怎样设计,对我们程序的本身是没有任何影响的。

但是当需要跟用户交互的地方,我们就要用它的默认值了,可是事情可能并没有我们想象的那么简单,也没有那么完美,当用户在使用一些html编辑器的时候,自己本身提交的字符里就有等这样的字符,这样就要求程序员必须要关闭validaterequest属性,这个时候我们又该怎样的来控制ASP.NET页面的安全性能呢?

当然了,这个地方我们可以来对一切危险字符进行过滤,这样可能提高一些安全性,但是我们防止用户的输入可能考虑的会有遗漏,这样就导致了安全还会是有问题的,我们可以反过来考虑我们到底需要提交多少特殊字符,然后对我们提交的特殊字符进行转义或替换,这样我们就又可以将validaterequest的属性设置为true了,这样既解决了程序的安全问题又满足了我们的需求。

有时候在与用户进行交互的时候,用户难免的会有输入特殊字符的时候,因为我们设置的validaterequest 的值为true所以页面会不给任何提示的前提下, 直接输出一大页的错误信息, 这样可能就导致了用户的误解,他们可能认为是我们网站出了问题,用户不可能会想到他输入了非法的字符! 对于这种情况我们又该怎么办呢?

幸好微软的工程师们在page里又给出了一个Page_Error的处理事件,这样我们就可以用它来进行异常的捕获了。代码如下:

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

有了这样的提示,给用户的体验可能不知道要好上多少倍了!

【编辑推荐】

  1. 写给ASP.NET程序员:网站中的安全问题
  2. ASP.NET应用程序设计的10大技巧
  3. ASP.NET数据库编程入门

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...