自动表单填写如何进行
该扫描会查看每个表单字段的“名称”属性,以确定它是否与“自动填写表单”页面上列出的名称相匹配。它将忽略不可用或其输入类型包括提交、重置、按钮或图像的字段。然后,它会将为表单字段提供的值发送到位于“操作”属性中的 URL。
存在某些操作条件:
- 必须配置站点以向其表单字段(INPUT 标记)指定名称;否则,“自动填写表单”将没有执行匹配操作的对象。
- “操作”属性必须包含 URL。“自动填写表单”无法运行 mailto 和 JavaScript™ 操作;其“操作”属性包含 mailto 或 JavaScript™ 引用的表单将被忽略。
- 现有隐藏字段和复选框的状态保持不变。
- 对于单选按钮,将使用所选按钮的值。如果未选择按钮,那么扫描将检查“自动填写表单”页面以查找匹配的单选按钮值。如果不存在匹配项,将使用第一个按钮。
- 对于选择字段,只要所选选项不是第一个选项,就将使用该选项,从而避免选择仅提供作为“提示”的值。如果没有选择任何选项,将扫描检查“自动填写表单”页面以查找匹配的选择字段值。如果不存在匹配项,将使用最后一个选项。
解决字段匹配中的冲突
当多个表单字段匹配项发生冲突时,扫描作业将使用以下标准来确定匹配优先级:
优先级 | 参数 | URL |
---|---|---|
0(精确匹配) | 是 示例:国家或地区 | 是 示例:www.example.com |
1 | 否 示例:regexp:coun |
是 示例:www.example.com |
2 | 是 示例:国家或地区 | 否 示例:无 URL |
3 | 否 示例:regexp:cou | 否 示例:无 URL |
如果某个表单参数与多个优先级相同的多个“自动填写表单”项相匹配,那么将使用列表中的第一个匹配项,因此在上例中,将使用 regexp:coun(因为它位于 regexp:cou 之前)。
确定提交的表单内容
当同时满足下表中条件 1 和条件 2 或条件 3 时,将提交表单:
- “自动填写表单”可用。
- 所有文本、文本区域和密码字段都有匹配条目或者已预填充。
- 在“自动填写表单”页面上选择了使用缺省值填写未知参数选项。
控件类型 字段名称 预填充 表单提交 按钮 不匹配 否 未发布 不匹配 是 未发布 匹配 否 未发布 匹配 是 未发布 复选框 不匹配 否 未发布 不匹配 是 于 匹配 否 未发布 匹配 是 在 隐藏 不匹配 否 空 不匹配 是 预填充 匹配 否 空 匹配 是 预填充 图像 不匹配 NA 发布以下内容:ImageName.y 和 ImageName.x 匹配 NA 发布以下内容:ImageName.y 和 ImageName.x 单选 不匹配 否 第一个单选值 不匹配 是 预填充 匹配 否 如果“自动填写表单”值是可能值之一,就使用该值;否则使用第一个单选值 匹配 是 预填充 选择 NA NA 如果没有选项:未发布。 NA NA 如果存在一个选项,就发送该选项。 NA NA 多个选项:如果所选选项不是第一个选项,就发送所选选项值。 NA NA 多个选项:如果存在匹配项且“自动填写表单”值是指定值之一,就发送该值。 NA NA 多个选项:如果存在匹配项但“自动填写表单”值不是指定值之一,就发送最后一个值。 NA NA 多个选项:如果不存在匹配项,就发送最后一个值。 提交 NA 否 发布:“提交查询” NA 是 发送预填充值 NA 否 发布:“提交查询” 匹配 是 发送预填充值 文本、文本区域和密码 不匹配 否 缺省值 不匹配 是 预填充 匹配 否 发送“自动填写表单”值 匹配 是 发送“自动填写表单”值