本地隐私防火墙:数据上传 AI 前的最后防线
开源项目实现本地防火墙,自动检测和阻止 PII、密钥等敏感信息发送给 ChatGPT 等服务。对所有使用 AI 工具进行开发的人都实用且必需。
开源项目实现本地防火墙,自动检测和阻止 PII、密钥等敏感信息发送给 ChatGPT 等服务。对所有使用 AI 工具进行开发的人都实用且必需。
👋 如果你在尝试 PrivacyFirewall,请给这个仓库标星!
这有助于其他人发现这个项目,也能激励开发。只需 2 秒 → ⭐(右上角)
每一天,敏感数据都被泄露给 AI 聊天机器人:
📧 客户邮件被粘贴进 ChatGPT 用于摘要
🔑 API 密钥不小心被包含在代码片段中
👤 员工姓名在会议笔记中被分享
💳 信用卡号码从支持工单中被复制
🏠 配送数据分析中的家庭地址
传统 DLP 工具无法保护 AI 聊天界面。PrivacyFirewall 可以。
PrivacyFirewall 在敏感数据到达 AI 工具之前就拦截它 — 完全在你的浏览器本地运行,无外部服务器。
graph TD
A[User Pastes/Types Text] -->|Intercept| B(Content Script)
B -->|Layer 1| C{Regex Scan}
C -->|Match Found| D{Block or Warn?}
D -->|Block| E[🛑 Show Modal]
D -->|Warn| F[⚠️ Show Banner]
C -->|No Match| G{AI Engine Ready?}
G -->|Yes| H[ONNX Model in Browser]
H -->|Entities Found| D
H -->|Clean| I[✅ Allow]
G -->|No| I
style E fill:#dc2626,color:#fff
style F fill:#f59e0b,color:#fff
style I fill:#22c55e,color:#fff
即时正则表达式层 — 在毫秒内捕获明显的模式(邮箱、信用卡、API 密钥)
AI 层 — BERT Named Entity Recognition 检测正则表达式无法识别的名称、组织和位置
两个层都 100% 在你的浏览器本地运行。无 Python 服务器。无 API 调用。无云端。
完美用来试试 — 只需 30 秒
下载最新版本:
下载最新版本:
解压下载的文件
解压下载的文件
在 Chrome 中安装:进入 chrome://extensions 启用开发者模式(右上角的开关) 点击"加载未打包的扩展程序" 选择解压后的文件夹
进入 chrome://extensions
启用开发者模式(右上角的开关)
选择解压后的文件夹
完成!访问 ChatGPT 并尝试粘贴:Contact john.doe@company.com or call 555-123-4567
完成!访问 ChatGPT 并尝试粘贴:
Contact john.doe@company.com or call 555-123-4567
克隆仓库
git clone https://github.com/ArnabKar/privacy-firewall.git
cd privacy-firewall
构建扩展
cd src/extension
npm install
node build.js
在 Chrome 中加载 导航到 chrome://extensions 启用开发者模式(右上角) 点击"加载未打包的扩展程序" 选择 src/extension/dist 文件夹
导航到 chrome://extensions
启用开发者模式(右上角)
选择 src/extension/dist 文件夹
通过扩展程序弹出窗口访问 → 打开设置
PII 规则:为每种类型启用/禁用检测
阻止与警告:选择阻止模态框或警告横幅
受保护站点:管理哪些 AI 工具受到保护
AI 置信度:调整敏感性阈值 (0-100%)
行为:切换实时输入检测
✅ ChatGPT (chat.openai.com, chatgpt.com)
✅ Gemini (gemini.google.com)
✅ Copilot (copilot.microsoft.com)
✅ DeepSeek (chat.deepseek.com)
src/extension/
├── manifest.json # Chrome MV3 manifest
├── background.js # Service worker (message routing)
├── content-script.js # Page injection (paste/typing interception)
├── offscreen.js # AI model execution environment
├── offscreen.html # Offscreen document container
├── lib/
│ └── transformer-detector.js # BERT NER model wrapper
├── modules/
│ ├── config.js # Regex patterns & constants
│ ├── scanner.js # Detection orchestration
│ ├── settings.js # Chrome storage management
│ ├── event-handlers.js # Paste & input handlers
│ └── ui/
│ ├── modal.js # Blocking modal component
│ ├── banner.js # Warning banner component
│ └── styles.js # Shadow DOM styles
└── ui/
├── popup.html/js/css # Extension popup
└── settings.html/js/css # Settings page
扩展程序:Chrome Manifest V3,ES Modules
AI 运行时:ONNX Runtime Web (WASM)
模型:Xenova/bert-base-NER-uncased via Hugging Face Transformers.js
UI 隔离:Shadow DOM(与主机页面无 CSS 冲突)
❌ 向外部服务器发送数据
❌ 记录或存储你的文本
❌ 使用分析或遥测
❌ 进行任何网络请求(除了首次运行时的模型下载)
✅ 在你的浏览器本地处理一切
✅ 首次下载后在本地缓存 AI 模型
✅ 在 Chrome 的加密同步存储中存储设置
✅ 提供完全可审计的开源代码
自己验证:打开 DevTools → Network 标签。你会看到检测过程中零个出站请求。
cd src/extension
npm install
node build.js
node tests/content-script.test.js
Chrome 120+(用于 Offscreen Documents API)
Node.js 18+(用于构建)
"AI Model Loading..." 永远停留
在 DevTools 控制台检查错误
该模型(~50MB)在首次运行时下载 — 在慢速连接上可能需要一分钟
尝试清除扩展程序数据并重新加载
扩展程序在某些站点上无法检测
检查该站点是否在你的受保护站点列表中
某些站点使用 iframe — 检测可能受限
用站点 URL 打开一个 issue
误报/漏报
在设置中调整 AI 置信度阈值
某些模式(如短名称)可能无法被检测
将边界案例报告为 issue
Firefox/Safari 支持
通过设置自定义正则表达式模式
编辑模式(替换 vs 阻止)
导入/导出设置
企业策略支持
欢迎 PR!请包含:
预期与实际行为
MIT 许可证 — 见 LICENSE
为隐私而构建。本地运行。开源代码。提交 Bug • 请求功能