在dify中构建防御流需配置输入预检节点,启用内容安全过滤并设置三条正则规则:匹配指令覆盖短语、结构劫持关键词、连续标点嵌套,检测到prompt注入特征时立即中断流程并告警。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在Dify中构建防御流,需利用其工作流编排能力对用户输入进行多层语义与结构校验,当检测到典型Prompt注入特征时立即中断流程并触发告警通知。
配置输入预检节点
在工作流起始处添加「文本处理」节点,勾选「启用内容安全过滤」→选择「自定义规则集」→点击右侧「编辑规则」进入YAML编辑器。
手动写入三条核心正则规则:第一行匹配“忽略上文”“你之前说的不算”类指令覆盖短语;第二行捕获“输出以下JSON”“按如下格式回复”等结构劫持关键词;第三行检测连续中英文标点嵌套(如“》》》”“
保存后返回节点设置页,将「不匹配时跳过后续节点」改为「匹配任一规则即终止流程」。
部署语义异常检测分支
方法一:调用本地部署的MiniBERT-PI模型
添加「HTTP请求」节点→URL填写内网模型服务地址(如http://192.168.1.10:8001/predict)→请求体使用JSON格式,字段名为input_text,值为{{user_input}}。
在「响应处理」中设置状态码非200时跳转至告警节点;成功响应后解析JSON中的score字段,若数值>0.87则判定为高置信度注入意图——【该阈值低于0.85会漏报恶意指令,高于0.91将误杀正常技术提问】。
方法二:复用Dify内置Embedding对比
创建两个「向量检索」节点,分别加载「安全指令语料库」和「攻击话术模板库」;前者包含127条合规提问范式,后者含89条已知注入变体。
将用户输入同时送入两个节点,比较返回的top1相似度分值:若攻击库匹配分值比安全库高0.15以上,触发拦截。
执行实时告警与流程熔断
第一步:在工作流末尾添加「条件判断」节点,设置判断逻辑为「precheck_result == "blocked" OR semantic_score > 0.87 OR attack_similarity_gap > 0.15」。
第二步:满足任一条件时,连接至「Webhook发送」节点,目标URL填入企业微信机器人地址,消息体中必须包含字段attack_pattern(取值为regex/semantic/vector三者之一)和raw_input(原始输入内容截断前200字符)。
第三步:紧接着插入「结束节点」,勾选「标记为异常会话」并开启「禁止重试」开关——【开启此选项可防止攻击者通过反复提交试探绕过检测】。











