自动表单填写如何进行

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