跳到主要内容

从一段 HTML 里提取表单字段:输出 method、action 和每个 input 的清单

把一页 HTML 喂进表单提取器,就能列出每个 form 的 method、action,以及所有 input、select 的 name、type 和默认值,适合做爬虫填表、接口逆向和安全审计,全程在浏览器本地完成。

发布于 作者 李雷
#HTML 表单提取 #表单字段 #前端 QA #爬虫 #安全审计

从一段 HTML 里提取表单字段:输出 method、action 和每个 input 的清单

接手一个旧项目的注册页时,我最怕的不是写新代码,而是先搞清楚原来这个表单到底往哪儿提交、带了哪些字段。打开浏览器看渲染结果只能看到几个输入框,真正决定接口行为的是 HTML 里那些 hidden input、autocomplete 属性和 form 的 action。手动翻源码一个个数,几十个字段很容易漏。我现在的做法是把整页 HTML 粘进 HTML 表单提取器,让它把结构摊开。

表单的关键信息藏在哪几个属性里

一个 <form> 真正有用的信息其实就几处。method 决定是 GET 还是 POST,直接影响参数走 URL 还是请求体;action 是提交地址,可能是相对路径、绝对 URL,甚至是空字符串(提交回当前页)。表单里每个 <input> 有三个核心属性:name(后端接收的键名)、type(text、password、hidden、checkbox 等)和 value(默认值)。<select> 则要看它的 name 和各个 <option>。把这四样东西列全,你基本就拿到了复刻这个请求所需的全部参数。

一段真实 HTML 提取出的字段清单

举个具体例子。下面这段是常见的登录表单:

<form method="post" action="/api/login">
  <input type="hidden" name="csrf_token" value="a1b2c3">
  <input type="text" name="username" autocomplete="username">
  <input type="password" name="password">
  <select name="remember">
    <option value="0">否</option>
    <option value="1" selected>是</option>
  </select>
  <button type="submit">登录</button>
</form>

提取器读完后给出的字段清单是这样的:

  • 表单 1:method = POST,action = /api/login
  • 字段 csrf_token:type = hidden,默认值 a1b2c3
  • 字段 username:type = text,autocomplete = username
  • 字段 password:type = password,无 autocomplete
  • 字段 remember:select,默认选中 1
  • 提交按钮:登录

光看这份清单,你立刻知道要复刻这次登录,得带上 csrf_token、username、password、remember 四个键,用 POST 发到 /api/login。password 字段没写 autocomplete,这是一个会被标出来的小风险点。

爬虫填表和接口逆向少踩的坑

写爬虫去自动登录或提交时,最常见的失败原因是漏带 hidden 字段。很多站点把 CSRF token、表单时间戳、会话标识都塞在 hidden input 里,渲染页面上完全看不见,但缺了它后端就拒绝。先用提取器把所有字段(包括 hidden)列出来,按这份清单构造请求,就不会因为漏一个隐藏参数而反复调试。接口逆向同理:action 加上字段名,基本等于把这个请求的入参文档化了。如果提交地址是个动态拼接的相对路径,配合 正则测试器 校验你抓到的 URL 模式,会省不少试错时间。

安全审计时盯哪几类问题

从审计角度,这份字段清单能暴露几类典型问题。密码字段用 GET 提交,意味着明文密码会进 URL 和服务器日志;action 指向外部域名,可能是表单劫持;POST 表单完全没有类 CSRF 的 hidden token,防护可能缺失;空 action 在某些框架下行为不确定。提取器会把这些点直接标出来。需要说明的是,hidden 字段名只是启发式判断,看到 csrf_token 不代表后端校验一定正确,它只是提醒你去核对的线索,不是结论。

本地处理,字段名不外传

表单里的 name、hidden value、action 往往带着内部路由和产品细节,这类信息不适合传到第三方服务器。这个工具完全在浏览器里解析你粘贴的文本,不上传任何内容。需要提醒的是,JavaScript 运行后才动态插入的表单,只有当它已经存在于你提供的 HTML 里才会被检测到;纯前端框架渲染的页面,建议先在浏览器里保存运行后的 HTML 再喂进去。输出可以导出成 CSV 做字段清单,或导出 JSON 给脚本继续处理。做整站结构梳理时,我会再配合 Sitemap URL 审计器 把页面和表单两层都盘一遍。


Made by Toolora · Updated 2026-06-13