Class SqlInjectionUtils
java.lang.Object
tech.riemann.nif.web.sql.SqlInjectionUtils
SQL注入防护工具类
提供SQL注入检查和防护的静态方法
定位声明(M16):本工具为简化启发式——仅作基础字符检查与 LIKE 通配符转义,
不能替代参数化查询 / ORM / 预编译语句。SQL 注入的根治方案是参数化查询,
生产级 WAF 检测请使用 SqlInjectionChecker(双通道:解码+规范,18 条特征),本工具与其规则不一致。
主要功能: 1. 检查字符串是否安全(简化启发式) 2. 转义 LIKE 通配符(仅限 LIKE 场景) 3. 清理SQL危险字符
- Author:
- Kerbores(kerbores@riemann.tech)
-
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
SqlInjectionUtils
public SqlInjectionUtils()
-
-
Method Details
-
isSafe
检查字符串是否安全(简化启发式)检查常见的SQL注入特征
M16-低级: 本方法为简化启发式,仅覆盖注释符/分号/OR-AND 特征, 与生产级 WAF 检查器
SqlInjectionChecker(双通道:解码+规范,18 条特征)规则不一致—— 高危接口请使用SqlInjectionChecker或参数化查询- Parameters:
value- 待检查的字符串- Returns:
- 是否安全
-
escape
转义 SQL 特殊字符——仅用于 LIKE 模式中的通配符转义M16: 本方法转义的是
%/_(LIKE 通配符)与'/\(MySQL 方言转义), 不能替代参数化查询 / 预编译语句——SQL 注入的根治方案是参数化, 黑名单与转义永远存在绕过可能(如OR 1=1无法靠字符转义防御)。使用场景:构建 LIKE 查询时对用户输入做通配符转义(配合 ESCAPE 或 MySQL 反斜杠语义), 如
LIKE '%' || escape(key) || '%'- Parameters:
value- 原始字符串- Returns:
- 转义后的字符串
-
clean
-