DeepSeek Harness 插件

dsh-web-recon

Work out how a web system actually works — once. Captures its real HTTP API and accessibility tree in a dedicated, fenced browser, then keeps a reusable playbook so later automation never pays to(英文原文)

跳到安装方式

来源信息

GitHub 仓库
sherconan/dsh-web-recon
最近更新
2026年8月14日
分类
工具与能力
GitHub stars
0
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/sherconan/dsh-web-recon
插件名:dsh-web-recon
作者:sherconan

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器4 个文件
README.zh.md来源说明 · 只读预览
README 语言

dsh-web-recon · 网页系统侦察

English | 中文

DeepSeek Harness 的插件。摸清一个网页系统怎么运作,只摸一次。

它解决什么问题

让 agent 自动化一个网页后台,最常见的做法是:截图 → 找按钮 → 点 → 再截图 → 再找。这个做法有三个毛病:

1. 贵。 一张截图几千 token,一个流程几十张。 2. 脆。 认坐标和像素,页面一改版就全崩。 3. 不沉淀。 这次花两小时摸清了,换个会话从零再来一遍。

真相是:按钮背后是 HTTP 接口,像素背后是可访问性树。两者都便宜得多,也稳定得多。

这个插件把一次侦察的结果固化成这个系统的作战手册——接口、鉴权方式、关键控件——以后所有同类任务照手册走,不再看页面。

效果长什么样

对一个单页应用侦察一次,产出(真实结果):

识别出 6 类应用接口;可访问性树 896 个节点
接口所在主机:api.gleif.org、challengemanagement.gleif.org

| 方法 | 主机          | 路径                      | 查询参数        | 鉴权     |
| GET | api.gleif.org | /api/v1/lei-records       | filter[fulltext] | 无      |
| GET | api.gleif.org | /api/v1/autocompletions   | q, field         | 无      |
| GET | challenge…    | /users/auth               | —                | XSRF 令牌 |

它一个按钮都没点,就知道这个系统的搜索该怎么调。界面和接口不在同一台主机上——这是单页应用的常态,也是照着界面摸索永远绕不过去的坑。

安装

dsh plugin --profile web add github:sherconan/dsh-web-recon

纯 JavaScript,零运行时依赖,无需构建。不需要 Playwright,不下载任何浏览器——直接用 Node 内置的 WebSocket 连 Chrome 的调试协议。

需要本机装有 Chrome、Chromium 或 Edge 之一(也可用环境变量 DSH_WEB_RECON_CHROME 指定路径)。

安全边界

这个插件要碰登录态,所以边界是设计的第一位:

  • 专用浏览器。 它跑自己的 Chrome、自己的配置目录,绝不接管你日常那个浏览器。它唯一能看到的登录态,是你在这个专用浏览器里亲手登录的那几个站。你的邮箱、网银、内网系统它碰不到。
  • 站点白名单。 未授权的站点直接拒绝,不是警告。授权带时间戳,白名单本身就是审计记录。
  • 凭据只由你输入。 只有登录这一个动作会开可见窗口,让你本人登录;其余全程无头,不弹窗。插件不会替你输密码,也不会向你索要密码。
  • 只回摘要。 原始抓包和完整可访问性树不会进对话——否则省下来的 token 等于又还回去了。

工具

工具用途
web_site_authorize / web_site_revoke / web_site_list站点授权与撤销
web_browser_login开可见窗口,你本人登录一次
web_browser_close关闭专用浏览器
web_recon侦察一个页面,产出并累积手册
web_replay按手册直接调接口办事(不截图、不点界面)
web_playbook_list / web_playbook_get读已有手册(先查这个,别重复侦察

重放:办事的那一步

拿到手册之后,web_replay 直接调接口:

  • 凭据不经手。 请求在专用浏览器的页面里发出,Cookie、CSRF、跨域全由浏览器处理,跟真实应用发的请求一样。插件从不读取、不存储、不打印任何凭据值。
  • 凭据模式自动适配。 先带登录态调;若接口是公开的(CORS 允许任意来源,按规则就不能带凭据),自动降级重试一次,并如实告诉你是哪种方式成功的。
  • 改写类请求默认拒绝。 POST/PUT/PATCH/DELETE 会改变目标系统状态,必须你明确同意后显式放行,模型不能自行确认。
  • 响应先蒸馏。 只回状态、结构摘要和截取片段,不把整坨 JSON 灌进上下文。

手册存在哪

$DSH_HOME/web-recon/playbooks/<站点>.json,可读可改的 JSON。多次侦察按接口并集累积——熟悉该系统的人可以直接手改纠正。

已知限制

  • 服务端渲染的页面没有独立接口可挖,此时手册的价值主要在控件清单。
  • 有些接口只在特定操作后才触发。用 interact 参数指定一个选择器,让侦察时点一下再观察。
  • 手册会随目标系统改版而过期。改版后重新侦察一次即可,接口按并集累积不会丢历史。
  • 手册目前记录接口形态,不记录字段语义。哪个参数是什么意思,仍需你或模型判断。
  • 尚未做多步流程编排(登录→取列表→逐条处理 这种串联仍靠模型自己组织)。

许可

MIT