mcpField
R
rls-check

rls-check

本地服务
github.com/Muhandis-online安全02 周前更新

关于 rls-check

rls-check 分析 Supabase 行级安全设置,并用阿拉伯语向非技术创业者逐表说明数据暴露情况。它只读取策略元数据,不读取表记录,也不需要数据库密钥或连接。

主要功能

  1. 01按访问风险分类表
  2. 02用阿拉伯语解释结果
  3. 03仅读取策略、授权和列信息
  4. 04提供 SQL 查询与结果分析
  5. 05支持命令行和 MCP

适用场景

  1. 01上线前检查 Supabase 访问规则
  2. 02向创业者说明数据暴露问题
  3. 03在 CI 步骤中运行 RLS 检查

MCP 相关

MCP 服务提供两个工具:一个返回只读查询,另一个解释查询结果。助手可通过官方 Supabase MCP 执行查询;rls-check 本身不保存数据库连接信息。

配置

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

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

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

安装包
npmmuhandis-rls-check0.1.2

工具

2

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

此工具无需参数。

详细介绍

Supabase RLS 检查:谁能读取客户数据?

一条只读查询,由你在自己的 Supabase SQL Editor 中运行;分析器会逐表解释结果:

  • 使用公开(anon)密钥的任何人可以读取或更改哪些表;
  • 哪些表允许任何已登录用户读取其他用户的行;
  • 哪些表已锁定,哪些表是安全的。

分析结果面向非技术背景的创始人,以阿拉伯语撰写,并附有英文标签(exposed、check it、 locked、safe);每项结果都链接到一篇介绍修复方法的阿拉伯语教程。

  • 它不会读取任何数据。 查询只读取表描述:RLS 状态、策略、授权和列名,绝不读取任何行。
  • 它不需要密钥或密码,也不会连接到你的数据库。你可以自行运行查询,或让 Agent 通过官方 Supabase MCP 运行。
  • 它与浏览器工具执行的是同一项检查:muhandis.online/tools/rls-check: lib/rls-check.js 是网站上的分析器,逐字节复制而来。

用法

1. 在浏览器中使用(最简单)

打开检查页面,复制查询,在 Supabase 中运行,然后粘贴结果。所有操作都在浏览器中完成;不会向任何地方发送数据。

2. 从命令行运行
npx muhandis-rls-check query > query.sql     # the query: run it in your SQL Editor
npx muhandis-rls-check result.json           # paste the result cell into a file; this explains it
npx muhandis-rls-check result.json --json    # the same explanation as JSON

发现暴露的表时,程序会以 1 退出,因此可将其作为 CI 步骤。

3. 用于 AI 助手(MCP)

将它添加到 Claude、Cursor 或任何 MCP 客户端中。助手会运行查询(例如通过官方 Supabase MCP),然后由此服务解释结果。此服务本身不保存任何连接信息。

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

工具:rls_check_query 返回查询,rls_check_explain 解释结果。

4. 作为 Claude 技能

同一项检查也可作为 Claude 技能:Claude 会提供查询,然后通过 skills/rls-check/scripts/rls_check.py 处理你粘贴的结果。这是分析器的 Python 版本,测试会确保其输出与 lib/rls-check.js 相同。它不需要密钥,也不会发起网络请求。

  • Claude 应用: 从最新版本下载 rls-check.zip, 然后选择 Customize > Skills,上传并启用。必须启用代码执行功能。
  • Claude Code:
/plugin marketplace add Muhandis-online/rls-check
/plugin install rls-check@muhandis

检查内容

标签阿拉伯语含义
exposedمكشوفRLS 已关闭且访客角色拥有授权;或表中包含个人信息列,但策略条件为 true;或访客可以读取未启用 security_invoker 的视图;或任何人都可以使用的更新或删除策略
check itتأكد منه任何人都可以读取、但不包含个人信息列的数据,例如产品列表;或无需登录即可插入数据的情形,例如联系表单
lockedمقفول已启用 RLS 但没有策略,或没有授权:应用无法访问该表
safeسليم策略通过 auth.uid() 与行所有者关联

系统会根据列名识别个人信息列(email、phone、user_id、iban、national、iqama 等)。

局限性

此工具检查的是可见规则,不能替代实际测试。检查后,请使用两个账户登录,并确认每个账户只能看到自己的行。Supabase 自带的 Security Advisor 会标记相关问题(RLS 已禁用、security-definer 视图、宽松策略);此工具会用阿拉伯语向产品负责人解释问题,并提供每项结果的修复方法链接。

发现暴露的表,想找工程师一起修复?muhandis.online/services/fix


由 Muhandis 制作,这是一家服务于沙特阿拉伯和海湾合作委员会(GCC)企业的软件公司。MIT 许可证。

评论

支持 Markdown

第一次接触 MCP?

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

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