SQL中容易泄露的信息
WHERE子句中的字符串和INSERT语句中的值很明显,但业务内容也可以从customer_contract和employee_salary等标识符推断出来。还检查连接目标名称、模式名称、注释和存储过程名称。
- 客户编号、姓名、地址、电子邮件地址等值。
- 架构名称和表名称,包括内部系统名称
- 解释业务规则的列名称、常量和注释
- 连接字符串、数据库链接、主机名、文件路径
不破坏结构的更换步骤
- 仅复制调查所需的 SQL 语句以及单独的连接设置和执行日志。
- 决定要脱敏哪些类别:表、列、值和注释。
- 同一标识符应使用相同的替代名称,以保持 JOIN 和子查询中的对应关系。
- 选择目标DB,检查是否保留DB特有的表达式,如引号、函数、分页语法等。
分享前需要检查的要点
| 检查项目 | 检查要点 |
|---|---|
| 语法 | 是否缺少括号、引号或终结符? |
| 对应关系 | 别名、JOIN 条件和 CTE 引用是否具有相同的替换名称? |
| 值 | 日期、ID、LIKE 条件或 IN 子句中是否剩余任何实际数据? |
| 注释 | 是否留下联系人姓名、问题编号、客户姓名? |
脱敏后的SQL不会在生产DB上执行,而是被视为共享副本。如果您需要确认操作,请在隔离环境中使用测试数据进行操作。
在浏览器中试用
输入内容仅在浏览器中处理。请保留原始数据,确认结果无误后再保存或分享。
打开 SQL 脱敏工具