自动表单填写如何进行

该扫描会查看每个表单字段的“名称”属性,以确定它是否与“自动填写表单”页面上列出的名称相匹配。它将忽略不可用或其输入类型包括提交、重置、按钮或图像的字段。然后,它会将为表单字段提供的值发送到位于“操作”属性中的 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 时,将提交表单:

  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 发布:“提交查询”
     匹配 发送预填充值
    文本、文本区域和密码    
     不匹配 缺省值
      不匹配 预填充
      匹配 发送“自动填写表单”值
     匹配 发送“自动填写表单”值