andykear/FileMaker-XML-scrubber

GitHub: andykear/FileMaker-XML-scrubber

一个基于浏览器的本地脱敏工具,用于在将 FileMaker XML 分享给 AI 工具前清除其中的 API 密钥、密码和内部主机名等敏感凭据。

Stars: 1 | Forks: 0

# FileMaker XML Scrubber [![Stars](https://img.shields.io/github/stars/andykear/FileMaker-XML-scrubber?style=social)](https://github.com/andykear/FileMaker-XML-scrubber) [![License](https://img.shields.io/badge/license-CC%20BY%204.0-green)](https://creativecommons.org/licenses/by/4.0/) 一个基于浏览器的单文件工具,可以在您将 FileMaker XML 分享给 AI 工具或其他开发者之前,清除其中的凭据值。所有操作均在浏览器本地运行,不会向任何地方上传任何内容。 由 Clockwork Creative Technology 的 Andrew Kear 创建,并公开分享给 FileMaker/Claris 社区。 ## 这能解决什么问题? 当您将 FileMaker 脚本 XML 或 DDR 导出内容粘贴到 ChatGPT、Claude、Gemini 或任何其他 AI 工具时,您可能会面临泄露嵌入在计算和配置中的 API key、密码、OAuth token、私钥和内部主机名的风险。 该工具会在保留逻辑的同时自动对这些内容进行脱敏,以便您仍然可以获取帮助。 ## 处理前 ``` $authPayload ``` ## 处理后 ``` $authPayload ``` key 和内部主机名已消失。而 Let() 块、拼接操作、变量名以及步骤结构均保持完好。AI 工具仍然能够读取其逻辑并为您提供帮助。 ## 清除内容 ### 已知的 key 和 secret 格式 这些格式的误报率几乎为零,因此会在所有位置(包括注释内部)进行匹配。整个字符串字面量都会被替换。 - **OpenAI** API key(`sk-`、`sk-proj-`) - **Anthropic** API key(`sk-ant-`) - **Google** AI key(`AIza`) - **xAI** key(`xai-`) - **Groq** key(`gsk_`) - **AWS** 访问密钥 ID(`AKIA`、`ASIA`) - **GitHub** token(`ghp_`、`gho_`、`ghu_`、`ghs_`、`ghr_`、`github_pat_`) - **Slack** token(`xoxb-`、`xoxp-`、`xoxa-`、`xoxr-`、`xoxs-`) - **Stripe** key(`sk_live_`、`rk_live_`、`sk_test_`、`rk_test_`) - **SendGrid** API key(`SG.xxxx.xxxx`) - **PEM 和 SSH 私钥**(`-----BEGIN ... PRIVATE KEY-----`),包括拆分在多个拼接字面量中的密钥 - 用于 Slack、Discord 和 Microsoft Teams 的**传入 webhook URL**(URL 本身携带了 auth token) ### 上下文脱敏 这些取决于值所在的位置或其命名方式,因此仅在注释块外部进行匹配。 - **Configure AI Account** 步骤值(步骤 ID 212),完全脱敏 - **Set Variable** 步骤(步骤 ID 141),其名称与凭据关键字匹配:单个字面量将被整体替换,表达式中的每个字面量都会被脱敏 - 计算内部的**内联关键字赋值**,例如 `apikey = "value"`,包括没有 `$` 前缀的 Let() 局部变量 - 涵盖的**凭据关键字**:api key、token、bearer、password、secret、SMTP pass 或 key、private key、auth key、SSH key、SFTP pass、passphrase、credential、OAuth - **连接字符串密码**(DSN 和连接属性中的 `password=` 和 `pwd=`) - **Azure 存储 key**:连接字符串中的 `AccountKey=` 和 `SharedAccessSignature=` 片段,保留 endpoint 和账户名作为上下文 - **插件许可证 key**:`MBS("Register"; ...)` 的字面量参数以及任何 `*_Register(...)` 激活调用,并保留 MBS 选择器 - **传递给 MBS 的 SFTP/CURL 凭据**,例如 `MBS("CURL.SetOptionPassword"; ...)`、`CURL.SetOptionUserName` 和 `CURL.SetOptionXOAuth2Bearer`。这些将凭据作为位置参数传递,而不是 `keyword = "value"`,因此普通的关键字匹配无法识别它们,而且普通的密码也没有基于值的扫描能够捕获的形状。工具处理了以下三种情况: - 字面量参数会被原位脱敏 - 变量参数(常见情况)会通过同一脚本自身的步骤列表向前追踪到赋予其值的最近的 `Set Variable`,并在其源头(而非使用位置)对值进行脱敏 - 字段引用(`Table::Password`)无需脱敏,因为其值存在于您的数据中而不是该文件内,因此会被标记以供人工审查 该追踪仅限于当前脚本。由调用脚本设置的变量,或在其他位置设置的全局 `$$variable`,将显示为未解析状态,而不会被默默忽略。 - **内部主机名和私有 IP**,替换为 `[HOST]`。公开 URL 将保持原样 - 名称与凭据关键字匹配的**属性** ## 不清除的内容 这是一个启发式清除工具,并非绝对保证。它无法捕获以下内容: - 账户名和权限集名 - 内部文件路径和文件名 - 密码字段以外的 ESS 和 ODBC 数据源名称 - 电子邮件地址和 SMTP 服务器名称 - 值列表内容、schema 名称、字段名或任何与凭据形状不匹配的敏感字面量 - 通过在*调用*脚本中设置的变量,或在文件其他位置设置的全局 `$$variable` 传递的凭据。SFTP/CURL 追踪仅遵循当前脚本自身的步骤;其范围之外的任何内容都将被标记为未解析,而不是被脱敏 即使不使用此工具,FileMaker XML 导出也会暴露大量结构。在分享之前,请务必检查输出内容。 ## 适用范围 - DDR XML 导出 - 另存为 XML(完整的数据库设计报告) - 脚本 XML(剪贴板粘贴格式,fmxmlsnippet) - 自定义函数 XML 支持处理 UTF-8 和 UTF-16 编码的文件。格式错误的 CDATA 部分(在计算文本包含 `]]>` 的 FileMaker 导出中很常见)会在解析前自动修复。 ## 隐私 文件完全在浏览器中使用 DOM 进行解析、扫描和脱敏。没有网络调用、没有上传、没有分析统计。您可以从本地副本离线运行它。 ## 用法 1. 在任何现代浏览器中打开 `filemaker-xml-scrubber.html` 2. 拖放文件或单击选择一个文件 3. 查看发现的结果 4. 下载脱敏副本或将其复制到剪贴板 如果您需要调整处于活动状态的模式或添加自定义关键字,可以在展开面板后面找到检测设置。 ## 关于输出 计算保留在 CDATA 内部,因此运算符不会被重新转义为实体。如果没有匹配项,则原样返回原始文本。该输出旨在用于分享和审查。它不能保证 100% 安全,因此在发布前请务必进行检查。 ## 配套工具 [FileMaker XML Inspector](https://github.com/andykear/FileMaker-XML-inspector-open-source) — 分析您的 FileMaker XML 导出 [FileMaker Script XML Skill](https://github.com/andykear/FileMaker-XMLsnippet-Claude-Skill) — 使用 Claude 生成可直接粘贴的脚本 XML [FileMaker Layout XML Skill](https://github.com/andykear/FileMaker-XMLsnippet-Layout-Claude-Skill) — 使用 Claude 生成可直接粘贴的布局 XML [FileMaker Field Definitions XML Skill](https://github.com/andykear/FileMaker-XML-field-definitions) — 使用 Claude 生成可直接粘贴的字段定义 ## 许可证 [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) — 免费使用、分享和改编,但需注明出处。 按“原样”提供,不提供任何担保。该工具可能会漏掉某些值,或者脱敏程度超出您的预期。在分享输出内容之前,您有责任对其进行检查。 v1.2 · [Clockwork Creative Technology](https://www.clockworkct.co.uk)
标签:ChatGPT辅助工具, FileMaker, XML, 后端开发, 多模态安全, 数据可视化, 数据脱敏, 网络安全, 隐私保护, 静态网页