打开本地与局域网页面进行调试
28.2/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Short-Arm-Ape/dsh-intranet-browser该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · browser
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 63 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 3 处,展示前 3 条)
- 发起网络请求src/gate.ts:147
const outcome = await approval.request({ - 读取本地文件src/runtime.ts:78
if (existsSync(path)) return channel - 发起网络请求src/runtime.ts:287
const reason = blockReasonForUrl(route.request().url(), {
扫描于 2026/11/3(0 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/dsh-settings@deepseek-ai/dsh-tools@deepseek-ai/dsh-attachment给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 打开本地与局域网页面
- 绕过SSRF防护
README
由 DeepSeek 最新模型翻译生成dsh-intranet-browser
绕过 @yeesy369/dsh-browser-playwright 的 SSRF 保护
概述
本插件修改自 @yeesy369/dsh-browser-playwright(上游源码仓库:xylt369/dsh-browser),并保持对服务定义包 @yeesy369/dsh-browser 的相同运行时依赖。
本插件将 ⚠️绕过 原插件的 SSRF 保护(url-guard.ts),以便 DeepSeek Harness 打开本地和局域网页面进行调试。它将调用一个独立的 Playwright 实例(独立服务名、独立配置文件目录、独立窗口)。
出于安全考虑,每次 intranet_ 工具调用都需要用户批准(默认 approvalMode: 'per-call'),并且云元数据端点默认保持封锁。
展开完整文档(README 剩余 1 节)
dsh-intranet-browser 绕过 @yeesy369/dsh-browser-playwright 的 SSRF 保护 概述 本插件修改自 @yeesy369/dsh-browser-playwright(上游源码仓库:xylt369/dsh-browser),并保持对服务定义包 @yeesy369/dsh-browser 的相同运行时依赖。 本插件将 ⚠️绕过 原插件的 SSRF 保护(url-guard.ts),以便 DeepSeek Harness 打开本地和局域网页面进行调试。它将调用一个独立的 Playwright 实例(独立服务名、独立配置文件目录、独立窗口)。 出于安全考虑,每次 intranet_ 工具调用都需要用户批准(默认 approvalMode: 'per-call'),并且云元数据端点默认保持封锁。 与原插件的关系 | 包名 | 原插件 browser-playwright | 本插件 intranet-browser | | 服务名 | ctx.browser | intranet-browser(独立实例) | | SSRF 保护 | 严格的 url-guard,未改动 | 已绕过(保留元数据封锁) | | 浏览器窗口 | 自有 Edge 配置文件 | 另一个配置文件(默认 ~/.dsh/intranet-edge-profile) | | 工具名 | browser_ | intranet_ | | 批准 | 通过 web-permission | 内置 ctx.approval 门控(每次调用) | 两个浏览器可以并行运行。 依赖与适配版本 | 名称 | 角色 | 版本 | | xylt369/dsh-browser | 上游源码仓库(改编自 @yeesy369/dsh-browser-playwright) | 0.8.1 | | @yeesy369/dsh-browser | 运行时依赖(dependencies:服务定义类型) | ^0.6.0 | | DeepSeek Harness | 目标宿主(dsh CLI) | 0.1.0-rc.7 / 0.1.1-rc.2 | 兼容性矩阵 | dsh 版本 | 状态 | 备注 | | 0.1.0-rc.7 | ✅ 已验证 | 对等版本范围 >=0.1.0-rc.7 <0.2.0 覆盖它。设置中的 expose 选项在 rc.7 中已移除;插件不再传递它。 | | 0.1.1-rc.2 | ✅ 已验证 | devDependencies 固定为 rc.2,因此类型契约针对该版本线进行检查。 | 开发与快速开始 1. 前置条件 - DeepSeek Harness CLI (dsh):npm i -g @deepseek-ai/dsh - Node.js ≥ 18 和 pnpm(npm i -g pnpm) 2. 构建包 在[此包的绝对路径]下执行: pnpm install pnpm build # tsc → lib/,然后客户端打包 → lib/client.js pnpm typecheck pnpm test 单元测试覆盖 URL 策略(元数据块、文件/凭据/协议检查)和审批门控决策逻辑;真实浏览器行为可参照 browser-playwright 的 e2e 模式进行验证。 3. 手动安装到 DeepSeek Harness(web 配置文件) 该包从其本地路径安装——无需 npm 发布。 Windows 一键安装: powershell -ExecutionPolicy Bypass -File scripts/install.ps1 macOS / Linux 一键安装: bash scripts/install.sh 或手动操作(脚本正是执行此操作): dsh plugin --profile web add [absolute path to this package] 如果有正在运行的 DeepSeek Harness 实例,请重启它。 AI 调用 intranet_open;会出现审批提示(默认每次调用都提示);只有在你批准后才会进行导航。然后继续使用 intranet_snapshot / intranet_click / intranet_screenshot 进行调试…… 卸载 dsh plugin --profile web remove @short-arm-ape/dsh-intranet-browser 工具 | 工具 | 用途 | | intranet_open | 打开 http(s)(可选 file)URL;允许 localhost/LAN/私有地址 | | intranet_snapshot | 当前页面的无障碍快照(带引用) | | intranet_screenshot | 截图作为持久图像附件(可供视觉模型使用);可选 fullPage | | intranet_click / intranet_type / intranet_fill / intranet_press | 页面交互 | | intranet_scroll / intranet_wait | 滚动和有界等待(maxWaitMs) | | intranet_back / intranet_forward | 历史导航 | | intranet_list_tabs / intranet_open_tab / intranet_switch_tab / intranet_close_tab | 多标签页管理(标签页按 harness 会话隔离) | | intranet_evaluate | 在页面中运行原始 JS——仅在 evaluate: true 时注册(默认关闭;需要重启) | | intranet_close | 关闭内网浏览器窗口(释放配置文件锁) | | intranet_arm / intranet_disarm | 仅在 approvalMode: 'arm' 下有意义:批准一次以激活/停用(在 per-call 下为空操作) | 配置 $DSH_HOME/settings.yaml(热重载;也可在设置 → 插件配置 → 内网浏览器下编辑 approvalMode / approvalScope / blockMetadata / blockedHostnames / windowVisibility / stealth;其余保留在 YAML 中): intranet-browser: approvalMode: per-call # per-call(默认,每次提示)| arm(intranet_arm 后不再提示) approvalScope: all # all(默认,每次调用都提示)| navigation(只读调用自由运行) blockMetadata: true # 继续阻止云元数据(169.254.169.254 / metadata.google.internal / instance-data …) blockedHostnames: [] # 额外始终屏蔽的主机名/IP(已规范化:末尾点、IPv4 映射的 IPv6、整数 IP) allowFile: false # 允许 file:// URL windowVisibility: visible # visible(默认)/ hidden / headless — 在下次浏览器启动时生效 stealth: true # 轻量级反检测 channel: null # chrome / msedge,省略时自动检测 profileDir: ~/.dsh/intranet-edge-profile maxWaitMs: 60000 # intranet_wait 上限 navigationTimeoutMs: 60000 # intranet_open / intranet_back / intranet_forward 超时 interactionTimeoutMs: 30000 # intranet_click / intranet_fill / intranet_press 超时 evaluate: false # 暴露 intranet_evaluate(高风险);在插件加载时注册,重启以切换 语义与限制 - 仅剩的检查是:scheme 必须是 http(s)(当 allowFile 为真时还包括 file)、不得内嵌凭据(user:pass@),以及默认的元数据黑名单。私有 IP / 回环 / DNS 解析筛查已移除 —— 这正是重点。 - 元数据黑名单在两个层面强制执行:初始导航 URL(在 goto 之前)以及浏览器上下文的每个请求(通过路由处理器)—— 重定向目标、XHR/fetch、iframe 及其他子资源均被覆盖,因此已批准的页面无法通过 302 或脚本方式访问元数据端点。黑名单匹配规范化后的主机名:末尾点、IPv4 映射的 IPv6 以及整数/十六进制/八进制 IP 变体均已处理;厂商端点(Azure metadata.azure.internal、腾讯 metadata.tencentyun.com、阿里云 100.100.100.200 等)均已包含。 - 审批是最后一道关卡:在 tools/pre-execute 瀑布流中,任何受门控的 intranet_ 调用若未获批准即被拒绝(故障关闭)。当没有审批服务或没有 agent 时,调用也会失败。拒绝和审批服务错误会被记录([intranet-browser])。 - approvalScope: navigation 允许只读调用(intranet_snapshot / intranet_screenshot / intranet_scroll / intranet_wait / intranet_list_tabs)无需提示即可运行;导航 / 写入调用仍然每次提示。它不会绕过请求级别的黑名单。 - 完全访问会话自动通过:当调用会话的审批策略为 never(完全访问 / danger-full-access 预设)时,intranet_ 调用无需提示即可通过 —— 用户已在会话级别选择退出审批提示,与 shell / 文件工具的信任级别一致。切换回 ask(例如 /permission workspace-write)会恢复每次调用的提示。 - Arm 模式仅在当前 agent 的进程生命周期内禁用提示;dsh 重启后需要再次执行 intranet_arm。在 per-call 模式下,intranet_arm 是文档中说明的空操作。 - 超时由配置驱动:maxWaitMs、navigationTimeoutMs、interactionTimeoutMs 在每次调用时从当前配置读取(热重载安全);注册的工具超时是宽松的挂起保护。 - 默认情况下,元数据保持被阻止;在你不完全控制的网络之外,不要禁用 blockMetadata(例如,明确测试 IMDS 的云虚拟机)。 - 每次导航都会像 browser_ 工具一样返回 url / title / statusCode。 - 标签页按 harness 会话隔离;cookie 和本地存储通过单一持久化配置文件(~/.dsh/intranet-edge-profile)跨会话共享——请将已登录状态视为跨会话的。 模型体验 - 模型会看到 intranet_ 工具(描述中带有 SSRF 绕过 + 审批通知),以及页面文本/引用/截图附件;它永远不会看到 Playwright 或浏览器内部实现。 - 在 ask 策略下,每次 intranet_ 调用都可能触发审批提示;描述会告诉模型不要滥发请求,并先说明意图。在 never(完全访问)下不会出现提示。 - 长快照会消耗 token;截图以附件形式传输,而不是 base64。 - intranet_open 会返回最终 URL、标题和 HTTP 状态码,以便进行故障排查。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Short-Arm-Ape/dsh-intranet-browser
打开本地与局域网页面进行调试
相关插件 · 浏览器
智能体插件框架deepseek-ai/deepseek-harness
DeepSeek Harnessdsh是由 DeepSeek AI 开发的开源 agent harness智能体框架。
★ 270,422已汉化DSH
71.9
多设备 Agent 看板YaoApp/yao
✨ 所有 Agent 和工作区集中管理,覆盖你的每一台设备。任务看板追踪进度,桌面端、移动端、浏览器、API…
★ 8,147已汉化DSH
71.2
可扩展侧边栏工作台omdsh-dev/DSH-better-sidebar
DSH 的双工作台:原生右侧栏 + 自绘底部面板,并把 ctx.betterSidebar 服务开放给所有插件
★ 4,761已汉化DSH
71.1
浏览器自动化桥Tencent/BrowserSkill
你的 Agent。你的浏览器。连接,就能协作。
★ 9,928已汉化DSH
71
AI 小说创作工作台EthanYoQ/AI-Novel-Writer
AI 小说作家 / AI Novel Writer
★ 1,591已汉化DSH
70.7
智能体浏览器引擎platonai/Browser4
DeepSeek Harness 集成
★ 1,175已汉化DSH
70.4
这是你的仓库?认领条目