首页/安全/漏洞与攻击面速查/代码与表达式注入(eval 类风险)
Web 漏洞原理与防护55 条

代码与表达式注入(eval 类风险)

eval、exec、动态 import、正则求值等能力若接受用户输入,等同于把代码执行权交给输入;规则引擎与低代码平台尤其要警惕表达式求值成为注入面。

漏洞与攻击面速查安全更新于 2026-10-12

风险点排查清单

风险点排查清单
Python:eval / exec / compile / pickle
JavaScript:eval / new Function / setTimeout 字符串形式
Java:ScriptEngine、SpEL/OGNL 表达式
低代码平台:自定义公式与脚本字段

安全替代思路

安全替代思路
公式计算:用 AST 白名单解释器(仅允许算术与比较)
规则配置:用 JSON/DSL 交给固定引擎执行
数据转换:用模板参数或映射表,不解析为代码
审计时对关键字做全量检索(如 grep -rn 'eval(' ),逐处确认输入来源。

易错点

  • 把『沙箱执行用户脚本』当卖点但沙箱实现不严:逃逸后果等同于直接代码执行

数据来源与参考

  • OWASP 注入类缺陷说明
  • Python 官方文档(eval 安全警告)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌