跳转到内容

防火墙

Restorm 会拦截它自己发出的所有出站调用 —— 既包括您发出的, 也包括其依赖库发出的 —— 并默认阻止所有未知目标。

好处非常直接:某个第三方库要是想偷偷回传数据,绝不可能在您看不见的情况下做到。

防火墙的授权提示:被拦截的来源、拦截层与发起调用的栈帧,以及 Allow / Deny 两个按钮

按以下顺序:

  1. Restorm 在本地回环地址上使用的内部基础设施端口一律放行。
  2. 白名单放行。
  3. 从您项目派生出的来源放行 —— 也就是您各个请求的 URL, 在所有环境上完成 {{variables}} 替换之后的结果, 每次树结构发生变动都会重新计算。
  4. 黑名单拒绝。
  5. 其余情况会弹出一个授权提示

第 3 条正是让防火墙真正可用的关键:导入一份包含三百个操作的规范说明, 并不会触发三百次提示,因为这些 URL 全都来自您的项目。

它会显示:

  • 相关的来源,形式为 https://exemple.com:443
  • 拦截该调用的
  • 一条关于调用方的线索 —— 发起调用的 URL,或者一段能指出责任 npm 包或文件的栈回溯;
  • AllowDeny 两个按钮。

每一次决定都会被持久化到对应的名单中。

如果没有可用的窗口,或者 60 秒内无人响应,该调用会被自动拒绝。

视图 ▸ Firewall 会打开一个唯一的标签页:里面是两份名单, Whitelist (N)Blacklist (N),带有实时计数,每条规则一行并附带删除图标, 另外还有一个格式为 scheme://host:port 的添加输入框。

Test outbound to google.com 按钮可以用来验证整套机制是否正常工作。

一条规则是协议 + 主机 + 端口的三元组。三者都有意义: http 不等于 https:443 也不等于 :8443

把某个来源加入其中一份名单时,它会被自动从另一份名单中移除

支持两种通配写法:

写法效果
https://api.exemple.com:*该主机的所有端口
https://*.exemple.com仅一级子域名

https://*.exemple.com 既不覆盖裸的 exemple.com,也不覆盖 a.b.exemple.com

  • 自动更新的调用是豁免的:它们不会触发授权提示。
  • 工作线程和子进程的全部 HTTP 流量都会被拒绝,既不能弹出提示, 也不能通过白名单放行。这是一种刻意采取的防御性姿态。
  • 没有用于关闭防火墙的总开关。这是有意为之。

每一次被拦截的调用都会连同其判定结果出现在控制台中, 呈现为可复制的 shell 命令。

共六个工具,全部在 Community 版中可用:open_firewallfirewall_list_rulesfirewall_allowfirewall_denyfirewall_list_pending_promptsfirewall_resolve_prompt。智能体所做的任何修改都会被审计记录。参阅 MCP 工具