8.0
热点
AI SCORE
工具产品2026-08-13 23:05
ai-prompt-firewall:拦截敏感信息外泄的 Node.js 库
dev.to · AI#安全#LLM#Node.js
Editor brief · 编辑速览
零依赖轻量库,可在提示词发送至 LLM 前自动检测并处理 API Key、PII、私钥等敏感信息,提供 redac/block/warn 三种模式并支持 SIEM 审计。
构建 AI 应用令人兴奋,但将未经过滤的用户输入直接传递给大语言模型(LLM)提供商,会带来严重的安全和合规风险。
从意外泄露 API 密钥(sk-proj-...)到暴露个人身份信息(PII)(邮箱、电话号码、内网 IP),未监控的提示词可能违反隐私法规,并暴露敏感的系统凭证。

为了解决这一问题,我构建并发布了 ai-prompt-firewall——一个轻量、无外部依赖的 Node.js 和 TypeScript 库,旨在拦截、清理和保护提示词流,在其到达 LLM 提供商之前筑起防线。
⚡ 零外部依赖:超轻量级 footprint,执行速度快。
🛡️ 内置模式检测:自动识别关键令牌(OpenAI、Anthropic、AWS、Stripe、GitHub、Google API、Slack、私钥、Bearer Token)和 PII(邮箱、电话号码、IPv4 地址)。
🎯 三种运行模式:
redact:用安全的占位标签(如 [OPENAI_KEY_REDACTED])替换检测到的敏感信息block:检测到敏感令牌时触发零信任阻断状态warn:放行提示词,同时捕获发现用于后台审计📊 支持 SIEM 的审计功能:返回精确的字符偏移量(startIndex、endIndex、length),满足安全合规日志记录需求。
🏢 多租户支持:可按租户预编译隔离的防火墙实例,并配置自定义正则表达式。
通过 npm registry 直接安装:
npm install ai-prompt-firewall
import { scan } from 'ai-prompt-firewall';
const userPrompt = "Here is my secret key: sk-proj-1234567890abcdef1234567890abcdefABCDEF";
// Scan and redact in real time
const result = scan(userPrompt, 'redact');
console.log(result.safePrompt);
// Output: "Here is my secret key: [OPENAI_KEY_REDACTED]"
console.log(result.findings);
// Output: Detailed array containing token type, severity, and exact character offsets
你可以在运行时扩展防火墙,添加自定义的领域特定模式检查:
const customPatterns = {
INTERNAL_PROJECT_ID: /PROJ-[A-Z]{3}-\d{4}/g
};
const result = scan("Access details for PROJ-XYZ-9876", "redact", { customPatterns });
对于多租户 SaaS 平台,可预编译专用防火墙实例以优化正则表达式编译性能:
import { createFirewall } from 'ai-prompt-firewall';
const tenantFirewall = createFirewall({
customPatterns: {
TENANT_BADGE: /BADGE-\d{5}/g
}
});
const tenantResult = tenantFirewall.scan("Badge code BADGE-99887", "block");
🔗 立即体验!
欢迎提交反馈、问题和建议!如果你觉得这个包对你的 AI 技术栈有帮助,请在 GitHub 上给它点个 ⭐️!