打印

表单验证 Validator v4.0 测试

本主题由 帅青蛙 于 2008-3-31 14:10 设置高亮
旧版本讨论 : http://bbs.blueidea.com/thread-1834871-1-1.html
1.05 & ASP、PHP版:http://www.blueidea.com/tech/web/2004/2360.asp

4.0 功能特点
1.支持Ajax验证
2.实现密码安全度等级验证及显示
3.5种配置方式
4.6种消息提示模式
5.能避免网络原因未完全下载validator.js时提交未经验证表单的
6.避免变量名冲突
7.详细的帮助说明文档
8. ...

下载:
CHM帮助:
程序文件:(内含超简单代码生成,目前正在不断加强)

注意:
1.目前提供的脚本是基于Mootools 1.2beta2的,稍后会提供独立版本,未来可能会提供Prototype与jQUery的版本
2.如果您的项目使用Mootools以外的JS框架,请保持关注,以等待独立版本或相应框架下的版本
3.希望大家下载试用,跟帖提供Bug的报告
4.有问题可以直接跟帖提问,方便整理FAQ到CHM中
5.由于下载包中的示例程序使用Ajax,所以务必使用HTTP方式访问(或者删除index.html第21行中的xml,改成configs : 'attribute,tag',)

[ 本帖最后由 我佛山人 于 2008-3-27 02:01 编辑 ]
附件: 您所在的用户组无法下载或查看附件,您需要注册/登录后才能查看!
本帖最近评分记录
  • wuleying 威望 +1 谢谢分享 忍不住打个分.. 2008-3-27 09:41
支持。。虽然我不懂。。。

不过帮助怎么变这么大了。。
大佛的心血啊,,太棒了

前3楼,顶
http://cuiyysw.flash8.net
支持出jquery版本

TOP

还在为头像烦恼?还在为不能关注好友动态烦忧?快来蓝色理想家园吧!
一直在使用 一直在关注 一直向说声谢谢!

TOP

不知道这个算不算致命的BUG,很多表单验证都有:
禁止网页脚本,可轻松绕过客户端所有验证

解决也比较简单,用JS提交表单就可以了。
郁闷中

TOP

没得说 顶一个
淫得一手好湿,吹的一口好萧!

TOP

引用:
原帖由 WellFrog 于 2008-3-27 10:19 发表
不知道这个算不算致命的BUG,很多表单验证都有:
禁止网页脚本,可轻松绕过客户端所有验证

解决也比较简单,用JS提交表单就可以了。
你说的解决方法不太明白,这个BUG算不上,这是浏览器决定的,而且客户端的验证是不可靠的,但又是必不可少的

TOP

引用:
原帖由 WellFrog 于 2008-3-27 10:19 发表
不知道这个算不算致命的BUG,很多表单验证都有:
禁止网页脚本,可轻松绕过客户端所有验证

解决也比较简单,用JS提交表单就可以了。
禁止网页脚本的用户比率能有多少?

现状是禁用js后大多数网站访问都会出现问题..
银子博客
经典站长QQ群:16719484
第三届经典论坛灌水王选举(12月1日-12月31日) 敬请期待

TOP

引用:
原帖由 我佛山人 于 2008-3-27 10:31 发表



你说的解决方法不太明白,这个BUG算不上,这是浏览器决定的,而且客户端的验证是不可靠的,但又是必不可少的
客户端验证是防君子不防小人
浏览器都会有一个“禁止运行网页脚本”的选项
选中后网页脚本失效
如果服务器端没有一套和客户端一样的正则验证,那势必可能出现意料以外的数据

对于想恶意提交的人,这可比外部提交方便多了
------------------------------------------------------------------------------------------------------------
我的解决办法的意思是
表单用button的onclick事件提交,且表单的action地址通过JS设置
郁闷中

TOP

引用:
原帖由 wuleying 于 2008-3-27 10:34 发表


禁止网页脚本的用户比率能有多少?

现状是禁用js后大多数网站访问都会出现问题..
一般人不会禁止网页脚本
但客户端验证就是为了防止那些恶意提交的人

的确禁用js后大多数网站访问都会出现问题
但恶意提交的人只需要表单能提交出去就可以了
郁闷中

TOP

前台验证为了减少用户误操作,提高体验度

后台验证为了安全性

二者不冲突,恶意提交验证使用后台验证(即便AJAX)
Rammstein

TOP

引用:
原帖由 WellFrog 于 2008-3-27 10:49 发表


客户端验证是防君子不防小人
浏览器都会有一个“禁止运行网页脚本”的选项
选中后网页脚本失效
如果服务器端没有一套和客户端一样的正则验证,那势必可能出现意料以外的数据

对于想恶意提交的人,这可 ...
这是一种方法,不过一样防不住,只要执行formObject.submit()就提交了

TOP

你没明白我的意思
你的表单验证如果禁止网页脚本还是可以正常提交的
但如果“表单用button的onclick事件提交,且表单的action地址通过JS设置”
那么禁止网页脚本后,表单是无法提交的
郁闷中

TOP

这又是用户体验的问题,禁止网页脚本的用户不一定就是恶意用户,你不允许提交表单,却是将他视作恶意用户了,所以为了安全起见,后端的验证也是必不可少的,所以现在的配置方式里有json和xml,就是方便前后台配合验证,保证验证规则的一致性

TOP

刚才看了下,你的正则规则是写在JS文件里的。。。后台使用规则不大方便吧
郁闷中

TOP

那个js是我测试用的,实际使用时通常是后台程序给ajax返回json数据

TOP

終於見到了更新版本 ----支持

TOP

不错,还没怎么细细品味,从用户体验和开发自定义功能都比以前的版本要好多了
方便了我们这些Web开发人员,感谢
最好也把各种动态网页的后台服务器验证也写一下吧,呵呵!!
最近模仿ASP.Net,用Jscript写了ASP的一些方便的服务器端功能。
比较喜欢和提倡写一些底层的代码,不管能不能方便别人,至少能够让自己省事、提高效率。
不是太喜欢ASP.Net的那些控件,就好像在写桌面程序,在用户体验和特殊功能上面大打折扣,失去了web编程的灵活性和多样性!
我身边有很多从做软件出身的ASP.Net程序员,他们只知道用.Net控件。遇到点比较麻烦的客户端验证不知道使用javascript,翻大量的资料去研究ASP.Net验证控件,但是还是于事无补。
再次感谢 我佛·山人,我想我不会再花多少经历再去研究Atlas,大家尝试自己写写最底层的东西吧,从HTML、XHTML、JavaScript、CSS、XML开始!!

TOP

@WellFrog :提交恶意数据有很多方式,而并非按照你说的就能防止,比如用其他工具发HTTP包,或者将页面保存到本地修改后提交等

前台的表单验证恰恰不是为了防止恶意用户而存在的,而是为了让用户在提交表单之前了解其提交的数据是否合法以避免不必要的工作。
你风流,我俊雅,和你同年少,两情深,罚下愿,再不去跳槽。

TOP

大家不要搞混了,客户端和服务器端验证的作用是不同的,各司其职,当然不可能完全替代。
客户端验证的最大好处是可以避免错误数据,主要目的是为了提高表单的友好程度,而不是安全性。

TOP

修复了一个bug,你可以直接修改full-validator.js里513-529行的代码为:
复制内容到剪贴板
代码:
  add : function(o, loaded){
   if(!loaded) {
    this.rules = this.rules || [];
    this.rules.push(o);
   } else {
    if(!o.validate) o = ns.Factory.Element.build(o);
    this.addElement(o);
   }
   return this;
  },
  _add : function(){
   if(!this.rules)return;
   for(var i = 0, l = this.rules.length; i < l; i ++) this.add(this.rules[i], true);
   this.rules.empty();
   this.rules = null;
   delete this.rules;
  },
或者重新下载:http://wfsr.net/validator/v4/validator.rar

TOP

我靠,大家居然都不赞叹,还在这里唧唧歪歪的.

大佛,你的心里一定在流血,对不对~~~
歌者已长息,逝者如斯夫!

TOP

引用:
原帖由 WellFrog 于 2008-3-27 10:49 发表


客户端验证是防君子不防小人
浏览器都会有一个“禁止运行网页脚本”的选项
选中后网页脚本失效
如果服务器端没有一套和客户端一样的正则验证,那势必可能出现意料以外的数据

对于想恶意提交的人,这可 ...
表单验证不只是验证数据。。
最重要的是提示用户

TOP

引用:
原帖由 FireINwinder 于 2008-3-29 09:22 发表
我靠,大家居然都不赞叹,还在这里唧唧歪歪的.

大佛,你的心里一定在流血,对不对~~~
是啊,滴血呢,为什么就没人提一下意见,老杨你给我提一下

TOP

呵呵,我试用一下给你提提意见~~

要不然给你做个第三方配置工具来看看.
歌者已长息,逝者如斯夫!

TOP

你的编码用的gb2312,如果改成UTF-8怎么办?
歌者已长息,逝者如斯夫!

TOP

还有一个问题,就是最好能封装成相关的控件,比如ASP.NET的控件,这样使用起来会更方便一些.

而且在服务器端只需要判断Page.IsValid就行了.

类似于内置的控件.

在PHP或者是其他的别的网站上,用最常规的js的方式应该就行了.
歌者已长息,逝者如斯夫!

TOP

1.在线的配置工具正在写:http://www.51code.net/v4/
你给我写个桌面版的就最好了,用delphi,win32平台
2.编码应该不成问题,程序里的中文我已经全部转码了,只要你使用时的配置文件和页面编码一致就OK,不过只是推测,找个时间测试一下看看
3.你只是作为一个.NET开发人员的立场说的,其它每个平台都需要有配合的封装,我也尝试过,1.x版本的时候做了ASP和PHP的,.NET版的一直是我自己用没公开,但是我一个人精力有限啊,要考虑全部开发语法不大现实,所以干脆只做好纯JS的算了

TOP

引用:
原帖由 我佛山人 于 2008-3-29 11:39 发表

是啊,滴血呢,为什么就没人提一下意见,老杨你给我提一下
别着急,好东西!都在研究中呢,有时间遇到了或想到了问题一定得提点意见,特别是在应用中。

TOP