在数字化转型背景下,数据成为核心资产,但 SQL 注入攻击依然威胁数据库安全。即使采用预编译和输入过滤,遗留代码或第三方组件漏洞仍可能引入风险。
KingbaseES V009R002C014 版本内置 SQL 防火墙,从数据库内核层构建主动防御,通过白名单机制实现规则先行。
一、SQL 注入原理与风险
攻击者将恶意代码伪装成正常输入,欺骗数据库执行非预期操作。例如登录表单中,用户输入 ' OR '1'='1,后台查询可能变为:
SELECT * FROM users WHERE OR '1'='1' AND password='xxx'
由于条件恒为真,攻击者可绕过认证。若附加 DROP TABLE users;--,整张表可能被删除。
传统防御依赖开发人员编码习惯,动态 SQL 遗漏参数化即产生漏洞。金仓数据库 SQL 防火墙在内核层设卡查验,无论应用层疏忽,所有 SQL 语句均需经其校验。
二、三种工作模式
系统建立合法 SQL 白名单,只允许白名单内语句执行,其他语句被警告或拦截。
学习模式:管理员指定监控用户,系统自动观察并记录执行的 SQL 为合法规则,无需手动编写。
警告模式:上线前开启,所有 SQL 被执行,但不在白名单的语句会报警并记录日志,便于微调。
报错模式:测试充分后开启,不在白名单的 SQL 直接拦截返回错误并写入日志。
可根据场景灵活配置,确保业务平滑落地。
三、性能与准确率
1. 高准确率
SQL 防火墙读取数据库内核解析结果计算特征值,而非简单字符串匹配。即使 DML 常量变化(如不同用户 ID),特征值稳定,降低误判。
实测数据如下:
| 指标 | 数值 |
|---|---|
| 非法 sql 总数 | 900 万 |
| 合法 sql 总数 | 100 万 |
| 被检出的非法 sql 数 | 900 万 |
| 被拦截的合法 sql 数 | 0 |
| 未被检出的非法 sql 数 | 0 |
拦截准确率接近 100%。
2. 低性能损耗
作为原生内部插件,深度集成且无需额外开发。100 个会话并发执行 500 条不同 SQL 场景下,吞吐量损耗低于 6%。
警告模式性能表现:
| 非法 SQL 占比 | 0% | 1% | 3% |
|---|


