首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 笔记本电脑 | 北大青鸟 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Dotnet频道
中国IT教育
Google
首页 ASP.NET  C#  XML/WebService ADO.NET VC.NET VB.NET .NET 资讯动态 专题 RSS订阅 讨论 下载
您现在的位置: 中国IT实验室 >> Dotnet >> ASP.NET >> 正文

WEB开发之ASP.NET 验证控件安全隐患技术


  ASp.net 的全部客户端验证控制都是放在一个:
  
  %SystemDrive%\Inetpub\wwwroot\aspnet_client\system_web\1_1_4322
  
  目录下的叫 WebUIValidation.js 的js 里最后的 11_1_4322目录是版本号不同的 .NET 环境这个也不同.
  
  IE 下载文件的机制是 , 如果服务器文件没有改变就不会重新下载,也就是说如果在缓存通过某种方法修改文件而且大小没有改变的话就可以破解开 js 文件的客户端限制,应为asp.NET 的这个 WebUIValidation.js 是不会经常更新的(根本就不更新)
  
  1、到你的 ie 缓存目录 [Internet属性\常规\设置按钮] 可以看到
  
  2、把里面的一个叫 Content.IE5 的目录下的全部目录清除
  
  3、访问你要测试的aspx页(上面一定要有验证控件的那种)
  
  4、看到网页后好了 可以在 Content.IE5 搜索 WebUIValidation[1].js(一般都叫这个名字)
  
  5、拿什么打开都行、找 function ValidatorCommonOnSubmit() 函数
  改
  event.returnValue = !Page_BlockSubmit;
  成
  event.returnValue = true;;;;;;;;;;;;;;
  大小不变就行 (-:
  
  6、保存在打开刚才那个测试页,点一下提交。
  
  呵呵验证的文本已经出来了但是仍然提交到了服务器看 ie 下面的进度条就会看出来,你花了半天写的“正则表达式”在短短几十秒就 over 了,哭吧。如果你在服务端没有验证的化就很容易将非法数据保存到服务器。
  
  个人以为 ms 的验证控件,就是为了验证用户数据节省用户的时间(MS 也没说这东西安全是吧)但却很容易给初学者一个安全的假想、因为现在有很多用 asp.net 的朋友根部一点不懂 js 确切的说还有可能不懂html.
  
  呵呵这也许就是 Microsoft Visual Studio .NET 强大的功能带来的负面影响吧。
  
  本隐患对老鸟是不会有什么的,反正我个人是不相信 js 脚本验证数据的(包括你自己写的),在客户端验证本来也不可能安全无论如何也要在服务端验证一下。也多写不了多少代码。
  
  测试环境 :Win2000, Microsoft ? .NET Framework 1.1 版
【责编:admin】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·算法分析与设计之五大常用算法
 ·开发必备 漫谈Java加密保护
 ·嵌入式开发--ARM技术专题
 ·C/C++指针,认真了解,灵活运用
 ·.NET开发:C#实用基础教程
 ·软件测试工具QTP学习专题
 ·嵌入式开发单片机解决方案专题
 ·Java开发环境 Greenfoot 程序员手册
 ·C++对象布局及多态实现的探索
 ·常见排序算法的实现
 今日更新
 社区讨论
 博客论点
 频道精选
 Dotnet频道相关导航