mcpField
A
Airlock RLS

Airlock RLS

本地服务
shipsealed.com安全02 周前更新

关于 Airlock RLS

Airlock RLS 是面向 Supabase 应用开发的 MCP 服务,用于检查已部署站点的密钥泄露和数据库 RLS 配置。它通过公开 URL 扫描前端资源,并仅读取数据库目录元数据进行审计。

主要功能

  1. 01扫描网页和 JS 包中的 service_role 密钥
  2. 02审计 RLS 关闭或过宽的策略
  3. 03检查 anon/authenticated 租户数据泄露
  4. 04审计仅读取目录元数据
  5. 05发现密钥时不输出完整值

适用场景

  1. 01发布前检查前端是否泄露 Supabase 密钥
  2. 02检查数据库表是否启用 RLS
  3. 03排查租户间访问策略漏洞

MCP 相关

该 MCP 服务向 MCP 客户端提供站点密钥扫描和 Supabase RLS 审计工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"mateuszingano-airlock-rls": {
"command": "npx",
"args": [
"-y",
"airlock-rls-mcp"
]
}
}
}
启动命令npx -y airlock-rls-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmairlock-rls-mcp0.1.1

工具

2

收录的工具列表 · 更新于 2 周前

参数类型必填说明
site_urlstring是要扫描的已部署网站的公开 HTTPS URL(例如 https://myapp.com)。仅允许使用公开的 HTTP(S) 主机。
max_scriptsinteger否要读取的 JS 包数量(默认值:50)。如果网站上的 JS 包更多,结果会说明有多少个未扫描,而不会暗示已检查全部内容。

详细介绍

Airlock RLS MCP — 在 AI 编码 Agent 中检查 Supabase 泄漏

让 Cursor、Claude Code 或任何 MCP 客户端**在构建 Supabase 应用时检查泄漏。**它能捕获最常见的氛围式编程隐患:将 service_role 密钥发布到浏览器,以及 Row Level Security 处于关闭状态或配置得过于宽松。

核心引擎是 Airlock RLS(npm i airlock-rls),用于在 CI 中检查 Supabase RLS。本软件包是它的轻量 MCP 封装。

两个工具

scan_site_for_exposed_key — 提供一个已部署的网址。它会读取页面及其 JS bundle,查找泄露的 Supabase service_role 密钥(service_role JWT 或 sb_secret_... 密钥)。无需数据库或凭据,只需公开网址。只要检测到密钥,任何读到它的人都可以绕过所有 RLS 策略。它绝不会打印完整密钥。

audit_supabase_rls — 提供一个 Postgres 连接字符串。发现 RLS 已关闭的表、过于宽松(始终为 true)的策略,以及 anon/authenticated 租户泄漏时,该工具会报错。它只会读取目录元数据(pg_tables、pg_policies、授权信息),绝不会读取你的行数据,因此只读角色就足够了。

添加到 MCP 客户端

{
  "mcpServers": {
    "airlock": {
      "command": "npx",
      "args": ["-y", "airlock-rls-mcp"]
    }
  }
}

Cursor(~/.cursor/mcp.json)、Claude Desktop(claude_desktop_config.json)及其他 MCP 客户端使用的配置块相同。使用 Claude Code 时:

claude mcp add airlock -- npx -y airlock-rls-mcp

然后向 Agent 提出类似 “扫描 https://myapp.com,查找泄露的 Supabase 密钥” 或 “审计此数据库的 RLS” 这样的请求,它就会调用相应工具。

要求

Node.js 18 或更高版本。

开发

npm install
npm run smoke   # starts the server and checks both tools are advertised

更多信息

Supabase RLS 指南、跨租户实时演示,以及托管版 Airlock Monitor(持续检查实时数据库):shipsealed.com

许可证

MIT © Mateus Zingano

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。