“探索选项”视图
定义 AppScan 将用于探索应用程序的探索方法(基于操作和/或基于请求)以及其他基本和高级探索设置。
- 探索方法
- AppScan 将两种不同的方法用于扫描的“探索”阶段。可选择任一方法,或选择两种方法。在这两种方法中,“基于请求的探索”通常比“基于操作的探索”的速度更快。同时选择两种方法时(这是缺省和建议的选择),“基于操作的探索”首先运行(有 30 分钟的时间限制),然后运行“基于请求的探索”。
- 页面结构 (DOM) 过滤
- 可通过识别与已扫描页面非常类似的页面(这些页面可被忽略)来极大地减少扫描时间。
- 扫描限制
- 确定 AppScan 探索应用程序的深度(或速度)。
- 高级设置
-
- 其他探索设置:用于配置客户机,以识别特定服务器编码和发送特定用户代理程序头。
- 基于操作:特定于此方法的设置。
- 基于请求:特定于此方法的设置。
设置 |
详细信息 |
---|---|
探索方法 |
|
基于操作 |
Google Chrome 浏览器用于扫描站点,例如单击浏览器中可见的链接,正如用户的操作一般。在使用了 JavaScript 和会话存储等技术的情况下以及对于 RIA、单页面应用程序 (SPA) 或 AngularJS 等站点,该方法特别有效。 |
基于请求 |
请求将根据 AppScan 发现的所有页面内容来发送。这包含了对使用浏览器的用户不可见的内容,例如注释中的链接,而攻击者可找到这些内容。 |
页面结构过滤 |
|
基于结构 (DOM) 过滤类似页面 |
AppScan® 将新页面与已扫描的页面进行比较以发现结构 (DOM) 相似性,这指示新页面不包含需要其他测试的新链接或内容。例如,在商业站点上,可能存在包含上千个不同项的各个页面的目录,而这些项在其他所有方面都是相同的。通常不需要扫描所有这些页面。基于 DOM 相似性过滤可极大地减少扫描时间。 缺省情况下,两个复选框均已选中。扫描之后,应检查扫描结果的“已扫描”选项卡以查看是否有某些独特的请求被错误地从扫描过滤出去。如果发生该情况,应尝试“过滤更少页面”选项(这将维护稳定、低级别的过滤),或一起禁用 DOM 过滤。 在结果的“已过滤”选项卡中将找到三种类型的已过滤项:
|
根据结构 (DOM) 过滤可能类似的页面 |
该设置将从扫描过滤“可能类似的 DOM”页面。如果独特的请求被错误地从扫描中过滤掉,因清除该复选框。 |
扫描限制 |
|
冗余路径限制 |
AppScan® 将不访问多于指定次数的相同路径。 如果特定路径出现不同参数,那么可多次访问特定路径。此限制主要与脚本相关。缺省情况下将取消选择该项,因为在大多数情况下,选择上面的复选框根据结构 (DOM) 过滤重复页面将足以控制扫描时间。 |
单击深度限制 |
AppScan® 对于需要单击超过指定链接数才能访问的页面,不会对其进行扫描。 |
总页面限制 |
如果选中,那么 AppScan® 将不会访问多于定义的最大页面数。请注意,在每个页面上可能会探索许多 URL。 |
高级选项
- 其他探索设置
- 基于操作:仅影响基于操作的探索的设置
- 基于请求:仅影响基于请求的探索的设置
其他探索设置
这些高级设置同时适用于基于操作的探索和基于请求的探索。
设置 |
详细信息 |
---|---|
编码 |
AppScan® 通常会自动检测应用程序的编码方法,因此缺省情况下会选中自动检测。 如果扫描结果中的响应内容似乎失真,那么这可能意味着未正确识别编码方法。要解决此问题,请从下拉列表中选择正确的编码方法。 |
用户代理程序 |
HTTP 请求中的“用户代理程序”头通知服务器发送请求的是什么类型的客户机,这可能会影响服务器返回的内容。例如,有些内容可能是特定于移动电话的,仅当用户代理程序是移动电话浏览器时才会发送。为了使 AppScan® 可以测试这些内容,您需要对其进行配置以发送适当的“用户代理程序”头。 AppScan® 通常会自动检测用户代理程序,因此缺省情况下会选中自动检测。但是,如果您使用的浏览器不是内置浏览器,且不记录登录过程、多步骤操作或手动探索,AppScan® 将无法自动检测用户代理程序,因此您必须手动选择用户代理程序。 要更改用户代理程序,请从下拉列表中选择代理程序。 要输入定制内容,请单击编辑按钮并输入内容。关闭对话框后,按钮的名称将变为定制用户代理程序。 注意:如果您更改缺省浏览器,请参阅更改缺省浏览器中列出的条件 |
基于操作
设置 | 详细信息 |
---|---|
探索超时(分钟) | 站点的“基于操作的探索”的缺省时间限制是 30 分钟,超过此时间后,“探索”阶段将停止,即使尚未充分覆盖站点。 如果 AppScan 此时错过站点的重要部分,您可以增加此超时。 |
调用页面上的操作之前的最短等待时间(毫秒) | AppScan 尝试在开始探索之前识别页面是否已完全装入。 如果在此处添加等待时间,AppScan 始终会使用此设置作为最短等待时间(即便检测到页面已装入),但如果检测到页面未装入,其等待时间将超过此时间。 提示: 如果在查看探索数据时,看到 AppScan 未能在页面上执行所有可能的操作,这可能指示其动态等待时间过短。如果您启用浏览器,还可以在扫描期间看到此内容:
注: 更改此设置可能会影响探索时间,因此您可能还需要考虑增加探索超时(如上所述)。 |
动态页面 | |
自动检测动态页面装入 | 缺省情况下,AppScan 主动检测动态页面内容并将其视为动态页面。在极少数情况下,这可能会导致页面无法正确装入,从而影响扫描覆盖率。 提示: 要识别此问题,请执行以下操作:
|
过滤器 | |
跳过相同 DOM 元素上的操作 | AppScan 根据各种条件识别它已经在前一页上执行过的操作。如果您的站点包含不同的操作,且由于 DOM 元素,这些操作看起来可能是相同的,则 AppScan 可能会错误地忽略这些操作。如果发生这种情况,请清除此复选框。 注: 在决定忽略未来的迭代之前,实际上AppScan 会重复几次相同的操作,以确保它们确实相同。 |
使用机器学习分析并跳过冗余操作 | AppScan 使用机器学习改善探索阶段效率。AppScan 可针对可能会指向站点中已探索过的部分的操作予以预测和避免。 如果您的站点包含许多页面,而它们唯一的区别就是内容,则此功能可以在指定的探索超时内极大地增加站点覆盖率。具体的获益情况视站点而定。 |
要跳过的操作 | 这是 AppScan 要忽略的操作的列表,因为这些操作可能会对扫描甚至应用程序产生不利影响。要跳过的操作是根据操作的 DOM 元素的 Id 、name 或 ng-model 属性确定的。如果 DOM 元素属性的 Id 、name 或 ng-model 包含列表中的一个单词,则将从扫描中过滤掉。您可以在此列表中添加、编辑和删除项目。 |
基于请求
- JavaScript™ 选项决定了 AppScan 应忽略还是扫描这些脚本。
- 探索方式决定了继续下一页面之前 AppScan® 是探索页面上的所有链接,还是探索它所找到的每个新链接。
- WebSphere Portal 用于配置客户机,以识别特定服务器编码和发送特定“用户代理程序”头。
设置 | 详细信息 |
---|---|
JavaScript™ | |
解析 JavaScript™ 代码以发现 URL | AppScan® 将 JavaScript™ 代码解析为文本数据以收集链接。 |
探索方式 | |
广度优先 | (缺省情况下)AppScan® 逐页探索,在继续下一页面前探索一个页面上的所有链接。 如果应用程序限制中没有要求用户按特定顺序访问链接,那么建议不要更改缺省选中的此选项(宽度优先)。 |
深度优先 | AppScan® 按照链接逐一探索,并在找到新链接时对每个新链接进行探索。 如果您将“探索方法”更改为深度优先,那么您必须将 AppScan® 也更改为探索期间仅使用一个线程(位于“配置 > 通信和代理”视图中)。 |
WebSphere® 门户网站 |
|
Enable WebSphere® 门户网站扫描 |
如果站点是 WebSphere® Portal 站点,那么 AppScan® 将需要从站点获取能更有效进行扫描的 URL 解码信息,以及构建有用的应用程序树。要启用解码,选择启用 WebSphere Portal 扫描。 如果上下文根 URL 不遵循缺省格式,单击添加上下文根 URL 以添加一个或多个上下文根 URL。
提示: 如果不确定门户网站上下文根 URL 是什么:
提示: 扫描 WebSphere® Portal 站点时,建议使用针对此目的配置的预定义 WebSphere® Portal 扫描模板。 |