SQL日志脱敏必须在SQL字符串完全生成后、执行前对日志副本处理,不可直接正则替换未拼接完成的$sql;仅对INSERT/UPDATE/DELETE的VALUES和SET子句脱敏,SELECT一般不脱。

SQL日志脱敏必须在拼接完成后再处理
直接对 $sql 变量做正则替换是常见误区——如果 SQL 还没拼好(比如用 PDO 预处理时占位符还在),正则会误伤或漏掉真实值。脱敏动作必须发生在 SQL 字符串完全生成之后、实际执行之前,且仅针对用于日志记录的副本,绝不能污染实际执行的语句。
典型适用场景:审计日志、调试输出、错误上下文打印。不建议在生产环境对所有查询无差别脱敏,会影响排查效率。
- 只对
INSERT、UPDATE、DELETE中的VALUES和SET子句做脱敏,SELECT一般不脱(除非明确含敏感字段) - 避免匹配注释里的 SQL 片段,可用
(?



















