检查整个网站的ACL的最简方法就是爬行。我们在第2章中讨论了Web爬行技术,包含多种自动化这一进程的工具(这些工具有时称作离线浏览器,因为它们将文件读取到本地供以后分析)。我们将介绍另一个Web爬虫程序Offline Explorer Pro(来自MetaProducts软件公司),因为它提供了比第2章中讨论的程序更好的Web ACL可见性。
和大部分Web爬虫类似,Offline Explorer Pro(OEP)的操作很简单——只要指向一个URL,它就从所提供的URL中捕捉指定深度的所有链接资源。OEP的有趣之处是它显示每次请求收到的响应的HTTP状态,使得查看文件和文件夹的ACL很容易。例如,图5-1中,OEP的Download Progress(下载进程)面板显示一个错误:401 Unauthorized response,指出这个资源受到ACL的保护,需要授权。
图5-1 Offline Explorer Pro在下载进程面板中列出HTTP状态码,指明了可能受到ACL保护的资源
OEP还内置支持大部分流行Web授权协议(包括Windows NTLM和HTML表单),使得在网站上进行差异分析很容易。
差异分析涉及使用未验证和已验证会话,或者不同用户的已验证会话在网站上爬行,以便揭示哪些部分阻止哪些用户访问。OEP中的验证配置选项可能难以寻找——它位于指定项目(File|Properties)的Project Properties(项目属性)页面中的Advanced(高级)类别下,标签为“Passwords”,如图5-2所示。
图5-2 Offline Explorer Pro的验证配置屏幕
提示 对于热衷于命令行的人,OE.exe可以通过命令行取得参数。
Web爬行的唯一缺点是,这种方法仅仅“看到”从其他页面链接到的网站。因此,你可能得不到完整的画面(例如,隐藏的“管理”页面可能不会从网站的任何页面链接,因此对爬虫程序不可见)。当然,我们在第2章中已经提到,自动化爬行为精密的手工分析开了一个好头,手工分析更有可能发现这些隐藏的内容。