该文转载自 http://www.cnblogs.com/dflying/archive/2007/03/16/676886.html

NoBot控件可以通过如下四种方式较为准确地判断出进行当前操作的是否为人类:

  1. 让客户端浏览器执行一段JavaScript,并判断其执行结果。机器人程序一般只是取得HTTP流的内容,对其分析并填写其中表单之后即提交,这个过程中并不包含对浏览器功能的使用,也就更不会解析并运行页面中的JavaScript得到正确的运行结果。且这段JavaScript既可以是一段简单的纯数学运算,例如123*4455=?,也可以是一些非常复杂的DOM操作,例如动态创建一个<div>,并返回它的位置等。这样即强迫该程序只能够在浏览器中使用,大多数机器人程序显然对此等计算无力回天。
  2. 判断客户端是否保存了本次会话状态。一般来讲,只有浏览器才会对会话状态进行关注并保存,而简单的机器人程序则会完全忽略会话状态信息。
  3. 判断客户端从开始接受页面到提交表单的时间间隔。机器人程序都比较讲究“效率”,加上计算机的强大运算能力,几乎可以在接收到页面之后的瞬间就完成表单的填写并提交回服务器。而对于人类,显然不可能在如此短暂的几秒钟时间之内就完成这样复杂的一张表单。
  4. 判断某段时间之内某个客户端的提交次数。同样,对于人类来说,没有能力也没有意义在比如一分钟之内填写同样的表单100次,而对于机器人程序,则这很有可能是它们的一贯作风。

使用ASP.NET AJAX Control Toolkit中的NoBot控件拒绝垃圾发布程序 【转载】相关推荐

  1. Ajax Control Toolkit 32个服务器端控件

    1. Accordion [功能概述]Accordion可以让你设计多个panel 并且一次只显示一个Panel .在页面上的显示效果就像是使用了多个CollapsiblePanels只不过每一次只展 ...

  2. Ajax Control Toolkit 34个服务器端控件

    1. Accordion [功能概述] Accordion可以让你设计多个panel 并且一次只显示一个Panel .在页面上的显示效果就像是使用了多个CollapsiblePanels只不过每一次只 ...

  3. 细数Ajax Control Toolkit 34个服务器端控件

    1. Accordion [功能概述] Accordion可以让你设计多个panel 并且一次只显示一个Panel .在页面上的显示效果就像是使用了多个CollapsiblePanels只不过每一次只 ...

  4. Ajax Control Toolkit 34个服务器端控件 详解

    1. Accordion [功能概述] Accordion可以让你设计多个panel 并且一次只显示一个Panel .在页面上的显示效果就像是使用了多个CollapsiblePanels只不过每一次只 ...

  5. 《ASP.NET AJAX程序设计 第I卷 服务器端ASP.NET AJAX Extensions与ASP.NET AJAX Control Toolkit》目录(最终定稿)...

    第一二卷都比较简单,特别是第一卷,讲的都是服务器端控件.第二卷是客户端部分,第三卷是高级内容,包括调试.性能.部署.控件开发.源代码结构.用户体验.心理学模型等等-- 第一卷争取在四月份出版,谢谢各位 ...

  6. Asp.net Ajax Control Toolkit设计编程备忘录(色眼窥观版)——第5回(错不了专辑)

    色即设--设计,从网页设计师的角度出发.因为自己的的特殊性(本身是软件工程师,但是对网页设计却有浓厚的兴趣),所以我的此系列文章不仅仅从编程角度出发,还将从设计的角度出发来细数AjaxControlT ...

  7. Asp.net Ajax Control Toolkit设计编程备忘录(色眼窥观版)——第3回(UE专辑)

    前言: 色即设--设计,从网页设计的角度出发.因为自己的的特殊性(本身是软件工程师,但是对网页设计却有浓厚的兴趣),所以此系列文章不仅仅从编程角度出发,还将从设计的角度出发来细数AjaxControl ...

  8. Asp.net Ajax Control Toolkit设计编程备忘录(色眼窥观版)——第4回(忍者专辑)

    ====================================================== 注:本文源代码点此下载 ================================= ...

  9. Asp.Net Ajax Control Toolkit 服务器端控件

    1. Accordion [功能概述] Accordion可以让你设计多个panel 并且一次只显示一个Panel .在页面上的显示效果就像是使用了多个CollapsiblePanels只不过每一次只 ...

最新文章

  1. linux下mkdir头文件_整理Linux下gcc编译中关于头文件与库文件搜索路径相关问题
  2. 云炬Android开发笔记 18解决沉浸栏的Bug和被手机状态栏遮挡的问题
  3. solr:关于dismax的使用情况(转:https://my.oschina.net/momohuang/blog/145379)
  4. 37.使用PreResultListener实现回调
  5. [leetcode]101.对称二叉树
  6. ora28500 mysql_Oracle使用 ODBC+DBLINK 访问 Mysql
  7. dateframe取某列数据_Python获取时序数据并进行可视化分析
  8. 数字滤波器(二)--最小相位延时系统和全通系统
  9. 监视和排错客户端性能和连接性
  10. 怎么减小照片大小kb?
  11. 【Python办公自动化】根据excel中数据批量生成word文档(适用劳动合同、质检报告、通知书等应用场景)
  12. 在 Windows 中为高级用户配置 IPv6 的指南
  13. scipy模块_misc模块,imread,imresize, imsave / imshow/ imrotate
  14. 如何快速入门 Python 爬虫
  15. 泰凌微8258入门教程 环境篇②——Telink IDE开发环境搭建
  16. Minimum supported Gradle version is 6.1.1. Current version is 5.6.4
  17. 机器学习算法:K近邻(k-nearest neighbors)
  18. Android 修改系统屏幕亮度
  19. explain的使用及详解
  20. 物联网的物流企业信息集成综合管理平台,主要有哪些特征?

热门文章

  1. Linux磁盘分区详解(fdisk)
  2. python 操作excel神器_【转】多图+代码 | 详解Python操作Excel神器openpyxl的各种操作!...
  3. solr mysql增量导入_急急急,在线等!solr4.10结合oracle增量导入数据问题!
  4. ios开发 多人语音聊天_iOS 新手集成单聊、群聊、语音和视频通话的简述
  5. 前端工程师的迷茫:不知道我这种前端是不是被淘汰了?
  6. Web前端和后端的区别是什么?如何区分?
  7. 不是计算机专业,哪个专业更适合学习web前端
  8. 数据库,部分函数依赖,传递函数依赖,完全函数依赖,三种范式的区别
  9. php对键盘控制,键盘控制 - 陈映亮的个人空间 - OSCHINA - 中文开源技术交流社区...
  10. eclipse里source的快捷方法_教你如何在Linux中设置快捷方式图标