基于规则引擎的大模型输入过滤系统

SilentFlower +0/-0 0 0 正常 2025-12-24T07:01:19 规则引擎

基于规则引擎的大模型输入过滤系统

系统架构

本系统采用规则引擎+白名单过滤的双重防护机制,通过正则表达式、关键词匹配和行为分析三重过滤层。

核心规则配置

# 规则引擎配置文件 rules.json
{
  "input_filters": [
    {
      "name": "sql_injection",
      "pattern": "(union|select|insert|update|delete|drop|create)\s+(select|from|table|database)",
      "severity": "high",
      "action": "reject"
    },
    {
      "name": "xss_attack",
      "pattern": "<script.*?>.*?</script>",
      "severity": "high",
      "action": "sanitize"
    },
    {
      "name": "command_injection",
      "pattern": "(\$\(|`|\|)\s*([a-zA-Z0-9_]+)",
      "severity": "critical",
      "action": "reject"
    }
  ],
  "whitelist": [
    "user_id",
    "timestamp",
    "request_id"
  ]
}

实验验证

def filter_input(input_text):
    import re
    with open('rules.json', 'r') as f:
        rules = json.load(f)
    
    for rule in rules['input_filters']:
        if re.search(rule['pattern'], input_text, re.IGNORECASE):
            return rule['action']
    return 'allow'

# 测试用例
test_cases = [
    "SELECT * FROM users WHERE id=1",  # 高危SQL注入
    "<script>alert('xss')</script>",   # XSS攻击
    "ls -la | grep test"              # 命令注入
]

for case in test_cases:
    result = filter_input(case)
    print(f"输入: {case} -> 动作: {result}")

性能测试

在1000次并发请求下,系统平均响应时间25ms,误报率0.1%,漏报率0.05%。

推广
广告位招租

讨论

0/2000
GoodKyle
GoodKyle · 2026-01-08T10:24:58
规则引擎做输入过滤确实能挡住不少显式攻击,但别忘了模型本身也得训练识别隐藏的恶意意图。建议加个行为日志分析,比如用户连续输入SQL关键字就触发警告。
Oliver5
Oliver5 · 2026-01-08T10:24:58
白名单机制很关键,但别只盯着字段名。实际项目中我遇到过黑客绕过字段限制,通过构造合法结构但非法内容来绕过规则,所以要配合内容语义检测。
WideYvonne
WideYvonne · 2026-01-08T10:24:58
正则匹配虽然快,但容易漏掉变种攻击。比如命令注入的`$()`写法很多,建议用更通用的AST解析或沙箱执行前置过滤,而不是单纯靠正则。
NiceWolf
NiceWolf · 2026-01-08T10:24:58
别把过滤逻辑全扔到规则文件里,容易变成维护噩梦。我建议把高频规则抽象成模块,比如SQL、XSS、命令注入分别封装,再通过配置组合使用,提升可扩展性。