繁体   English   中英

是否可以在MySQL常规/慢速查询日志中隐藏密码?

[英]Is it possible to hide the password in MySQL General/Slow Query Logs?

有时我查看我的MySQL日志,偶然发现一些AES_ENCRYPT / AES_DECRYPT请求以明文显示密码。

如果我在PHP中创建日志,我将能够删除它们。

但是MySQL通用/慢速查询日志呢 他们的选项是否可用,或者是否可以设置一个不会保存在日志中的mySQL变量?

不幸的是,我知道无法为单个语句禁用MySQL日志记录。 MySQL文档建议保持日志安全,原因如下:

5.2.3开始。 一般查询日志

从MySQL 5.6.3开始,写入通用查询日志的语句中的密码将被服务器重写,而不是以纯文本形式发生。 通过使用--log-raw选项启动服务器,可以抑制一般查询日志的密码重写。 此选项可用于诊断目的,以查看服务器收到的语句的确切文本,但出于安全原因,建议不要将其用于生产用途。

在MySQL 5.6.3之前,不会重写语句中的密码,并且应保护通用查询日志。 请参见第6.1.2.2节“ 密码安全管理员指南 ”。

不幸的是,(自5.6.3开始)内置的反密码日志记录仅适用于MySQL PASSWORD()函数。

我为您的问题找到了一些可能的解决方案:

  1. 对于每个查询:禁用日志,执行查询,启用日志
  2. 在您的应用程序本身中隐藏密码(在您的情况下,php sha)
  3. 保护日志文件,以便没有人能看到这些语句
  4. 登录到删除密码本身的应用程序

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM