显示隐藏域,以致在浏览器中可见。
3.3.2 Web应用爬虫
Web 应用爬虫以类似于传统爬虫的方式工作。而传统爬虫的工作方式是这样的:通过请求网页,解析网页得到连接到其他网页的链接,然后继续请求那些网页,递归地进行直到发现这个网站的所有内容。为了适应功能性的Web应用程序和传统的网站之间的差别,Web应用爬虫除了具有核心的功能以外还必须解决其他各种各样的问题,如下:
基于窗体的导航,使用下拉列表,文本输入和其他方法。
基于JavaScript的导航,例如动态生成的菜单。
认证和会话。
基于参数的标识符(不是URL)的使用,为了指定不同的内容和功能。
URL询问字符串中的Token和可变参数的出现,这导致了内容唯一性识别的问题。
这些问题在综合的测试套件中通过在拦截代理和爬虫组件之间共享数据得到解决。这使得你可以以正常的方式使用目标应用程序,代理处理所有的请求然后传送给爬虫做深入的分析。为了汇集了足够多的信息,执行爬虫进行更深入的分析发现更多的内容和功能。
在Web应用爬虫中实现的特性如下所示:
自动更新通过拦截代理访问的URL网站映射图。
通过解析网页获取链接,增加链接到网站映射图中的方式(实际上并不需要请求它们)被动的爬取代理所处理的内容。
以树和表的形式显示发现的内容,这样有利于搜索结果。
自动化爬取范围内的细粒度控制。为了聚焦一个特殊范围的功能和阻止爬虫跟踪目标应用程序基础设施中或者外部的不适当的链接,这个特性使得你可以指定爬虫请求哪些主机名、IP地址、目录路径、文件类型和其他项目。这个特性也能够避免爬取例如管理界面(可能引起如删除用户帐户这样危险的副作用)这样功能强大的应用。它还能有效地阻止爬虫请求注销职能。
自动地解析HTML窗体、脚本、注释和图像。
解析URL中JavaScript内容和资源名字。即使没有实现一个完整的JavaScript引擎,由于基于JavaScript导航的目标通常以文字的形式出现在脚本中,它也能够使爬虫发现这些目标。
NOT FOUND响应的检测。许多应用程序在一个无效的资源被请求时以一个“HTTP 200”消息响应。如果爬虫不能识别出,由而产生的内容映射可能包含误报。
检查robots.txt[11]文件,它提供了一个不应该被爬取的URLs黑名单,但是一个攻击型的爬虫能够利用它发现额外的内容。
自动获取所有列举目录的根目录。这对于检查目录列表十分有用。
自动地处理和使用由应用程序发出的Cookie,这样可以使爬虫在被认证过的会话的上下文中执行。
自动化测试单个网页的会话依赖性。这涉及分别用接收到的Cookie和不使用任何Cookie请求每个网页。如果可以获取到相同的内容,那么这个网页不需要会话或者认证。这在检测一些访问控制缺陷时非常有用。
在发送请求时自动化地使用正确的Referer头。一些应用程序可能检查这个头的内容,这个功能可以确保爬虫尽可能地像一个普通的浏览器那样运转。
控制在自动化爬取过程中使用的其他HTTP头部。
控制自动化爬虫请求的速度和次序。
3.3.3 Fuzzer和扫描器 WEB安全漏洞检测工具的分析与改进(7):http://www.751com.cn/jisuanji/lunwen_8099.html