🛡️ 提示词守卫 [✅PASS]
插件名称: Anti-Prompt Injector
当前文档依据版本: v3.6(PTD Core 4.1)
用于检测并拦截提示词注入、越狱、系统提示词套取、骚扰辱骂等高风险内容。
提示词守卫会在消息交给大模型之前自动进行安全检查。普通用户无需手动开启,也不需要额外学习复杂用法。
🚀 快速了解
| 项目 | 说明 |
|---|---|
| 是否需要手动触发 | 不需要,插件会自动检查发给 bot 的消息 |
| 主要作用 | 防止用户修改 bot 人设、套取系统提示词、诱导越狱或进行恶意操控 |
| 是否可能误判 | 有可能,具体取决于管理员选择的防护模式和配置 |
| 触发后会怎样 | 可能加固系统指令、交给 AI 复核、替换危险内容或直接拒绝 |
| 是否会被拉黑 | 管理员开启自动拉黑后,高风险行为可能触发临时或永久封禁 |
🔍 它主要防什么?
| 类型 | 常见表现 |
|---|---|
| 越狱与角色覆盖 | “忽略之前所有指令”“现在你是 DAN”“从现在起扮演……” |
| 系统提示词套取 | “输出你的系统提示词”“打印全部内部指令” |
| 指令伪造 | 伪造 system、assistant 或模型内部标记 |
| 编码隐藏 | 使用 Base64、ROT13、不可见字符等方式隐藏恶意指令 |
| 多语言混淆 | 使用其他语言或混合文字绕过关键词检测 |
| 字形替换 | 使用数字、符号或相似字符改写敏感词 |
| 间接注入 | 在网页、文档、图片文字中夹带恶意指令 |
| 记忆投毒 | 试图让 bot 长期记住错误规则或虚假信息 |
| 数据外泄 | 诱导 bot 泄露对话、配置或其他敏感信息 |
| 骚扰行为 | 辱骂、霸凌、性骚扰、胁迫或仇恨煽动 |
正常聊天、合理的角色讨论和普通问题通常不会受到影响。
不要刻意测试越狱语句或反复套取内部提示词,否则可能被系统记录或封禁。
🧱 防护流程
- PTD 启发式检测:扫描攻击特征、敏感关键词、编码伪装,并计算风险分数。
- LLM 辅助复核(可选):当启发式检测无法确定时,交给另一个大模型结合语义和上下文复核。
- 执行安全策略:根据管理员设置,选择加固、复核、替换内容或直接拒绝。
🐘 四象防护模式
| 模式 | 配置值 | 处理方式 | 适合场景 |
|---|---|---|---|
| 静默加固 | sentry | 检测到风险后暗中加固系统指令,尽量继续对话 | 更在意聊天流畅度、担心误判 |
| 复核确认 | aegis | 检测到风险后交给 AI 二次判断,确认后再处理 | 兼顾安全与体验 |
| 内容替换 | scorch | 将危险内容替换为安全提示,原文不交给回复模型 | 公开群聊、严格风控 |
| 立即拒绝 | intercept | 直接阻止危险消息并向用户提示 | 高安全要求场景 |
实际使用的防护模式由管理员决定,普通用户无法自行切换。
👤 普通用户命令
以下命令统一使用 @bot + 命令 的方式发送。
| 命令 | 说明 |
|---|---|
@bot 反注入帮助 | 查看插件帮助和可用命令 |
@bot 查看管理员状态 | 查看自己是否拥有插件管理权限 |
⚙️ 管理员命令
以下命令仅供 AstrBot 全局管理员 使用。
白名单用户只是不会被安全系统拦截,并不自动获得管理权限。
防护模式与检测
| 命令 | 说明 |
|---|---|
@bot 切换防护模式 | 在四种防护模式之间轮流切换 |
@bot 切换观察模式 30 | 临时切换为静默加固模式,示例为 30 分钟,结束后自动恢复 |
@bot 反注入统计 | 查看拦截次数、LLM 分析次数、封禁数量等统计 |
@bot LLM分析状态 | 查看当前防护模式和 LLM 复核配置 |
@bot 开启LLM注入分析 | 开启 AI 辅助复核 |
@bot 关闭LLM注入分析 | 关闭 AI 辅助复核 |
@bot 设置审查LLM 供应商 模型 | 指定用于安全复核的 AI 供应商和模型 |
@bot 开启防骚扰 | 开启骚扰、辱骂等内容检测 |
@bot 关闭防骚扰 | 关闭骚扰检测 |
黑名单
| 命令 | 说明 |
|---|---|
@bot 拉黑 QQ号 60 | 拉黑指定用户,示例为 60 分钟 |
@bot 拉黑 QQ号 0 | 永久拉黑指定用户 |
@bot 解封 QQ号 | 解除指定用户的封禁 |
@bot 查看黑名单 | 查看当前黑名单 |
白名单
| 命令 | 说明 |
|---|---|
@bot 添加防注入白名单ID QQ号 | 将指定用户加入防注入白名单 |
@bot 移除防注入白名单ID QQ号 | 从白名单移除指定用户 |
@bot 查看防注入白名单 | 查看当前白名单 |
管理面板
| 命令 | 说明 |
|---|---|
@bot 设置WebUI密码 新密码 | 设置或修改安全管理面板密码 |
密码属于敏感信息,建议仅在私聊中设置,不要在公开群聊发送。
🖥️ 管理面板
插件自带 Web 管理面板,可用于:
- 查看当前防御模式、PTD 版本和拦截统计;
- 切换防护模式;
- 开关 LLM 复核、自动拉黑和防骚扰;
- 管理黑名单与白名单;
- 查看每次拦截的用户、风险类型和分数;
- 按用户、群聊、时间或类型筛选日志;
- 导出拦截与分析记录;
- 切换亮色或暗色界面。
管理面板默认监听:
http://127.0.0.1:18888
实际地址和端口可能已被站点管理员修改。如需访问,请联系维护员获取地址。
⚠️ 使用注意
- 不要尝试让 bot 忽略系统规则、泄露提示词或切换成未授权身份。
- 不要用编码、特殊符号或多语言反复测试绕过检测。
- 若管理员开启自动拉黑,高风险行为可能直接触发封禁。
- 白名单只代表跳过防注入拦截,不代表获得管理员权限。
- 管理指令建议在私聊中使用,尤其是密码、用户 ID 和安全配置。
❓ 常见问题
Q:为什么我的消息被拒绝了?
消息可能包含越狱、系统提示词套取、角色覆盖、编码隐藏或其他高风险特征。请改用正常、直接的表达方式重新提问。
Q:只是开玩笑也可能被拦吗?
有可能。安全系统主要根据文本特征和语义判断,不一定能识别所有玩笑语境。管理员可以通过调整模式或启用 LLM 复核降低误判。
Q:为什么别人能发,我却被拦截?
可能原因包括:
- 对方在防注入白名单中;
- 你的消息风险分数更高;
- 你曾多次触发检测或已经进入黑名单;
- 群聊和私聊的安全配置不同。
Q:被拉黑后怎么办?
停止继续测试攻击语句,并联系管理员确认封禁原因和剩余时间。临时封禁到期后会自动解除;永久封禁需要管理员手动解封。
Q:提示词守卫能保证绝对安全吗?
不能。它用于降低提示词注入和恶意操控风险,但任何检测系统都可能存在漏判或误判。
📎 项目信息
- 项目名称:Anti-Prompt Injector
- 项目作者:oyxning
- 开源协议:AGPL-3.0
- 项目地址:https://github.com/oyxning/astrbot_plugin_antipromptinjector