为什么 mysql 用户密码弱是不好的?

Cit*_*zen 23 mysql security php password

我收到了一个关于“您不需要强大的 mysql 用户密码,因为为了使用它,他们已经可以访问您的服务器”的论点。我们谈论的是一个 4 位密码,它是一个实时商业网站上的标准英语词典单词。

在不以我自己的知识和经验影响答案的情况下,我想向他们展示一些来自无私的 3rd 方来源的回应。有人关心这个吗?编程/实用答案将不胜感激。

mea*_*gar 39

提出这个论点的人似乎在说“一旦有人踏进门,你不妨让他们完全进入”。按照这种逻辑,防火墙不需要内部网络上的所有密码。

强密码是限制网络入侵造成的损害的一步。没有理由仅仅因为您的网络的一小部分遭到破坏而举手投降。

  • “纵深防御”是当今的座右铭。 (13认同)
  • 请注意,一旦他们可以访问您的文件系统,他们就可以访问您存储密码的 PHP 文件或配置文件,除非您为此设置了一些额外的安全措施,这在共享主机上通常很困难或不可能. (3认同)
  • @Lotus 假设 PHP 和 MySQL 服务器是同一台机器。 (2认同)
  • @Lotus Notes,无论如何您都不应该在应用程序中使用 root 用户。设计良好的应用程序只允许必要的访问。大多数情况下,这包括对数据的访问,但并不总是对所有数据的访问,在某些情况下,它甚至可能是只读的。 (2认同)

小智 14

它真的可以追溯到“深度防御”的想法,因此至少一个强密码可以减慢它们的速度,以便您可以发现并阻止它们。我喜欢将门控社区的一把钥匙与每所房子的门上的钥匙进行类比。

  • 锁和其他安全装置主要用于业余小偷或仅用于威慑专业小偷。另一个威慑因素是房子周围有足够的照明,并避免使您一整天都在做什么和做什么的常规例行公事。切勿与陌生人谈论假期计划,如果您离开很长时间,请通知当地警方。总是尽量让它看起来好像有人在家。还有,……等等,又是什么问题? (5认同)
  • @Dan:但是在安全的设施中,您希望每扇门都有不同的钥匙,对吗?在独户住宅中,不会——您希望所有的锁都使用相同的钥匙。但是在共享房屋中(例如与室友),这将取决于家庭哲学:要么解锁门(可能所有门都使用相同的钥匙),要么每个室友使用不同的钥匙。 (4认同)

小智 6

这在很大程度上取决于您的 MySQL 服务器的设置方式。如果它只接受来自家庭 (127.0.0.1) ip 的请求,这确实使它更安全。

考虑到您允许远程 IP 的情况,这将变得更加重要。

除此之外,在入侵的情况下拥有强大的安全性总是好的 - 最好是他们尽可能少地走开。


Joh*_*nFx 6

会计中的小额现金箱有锁吗?如果是这样,为什么?大楼没有物理安全吗?


小智 5

您不需要强大的 mysql 用户密码,因为为了使用它,他们已经可以访问您的服务器

这不是真的,因为 mysql 也可以在跨网络客户端 - 服务器环境中使用,并且默认情况下,您唯一需要的是用户/密码来访问数据库(当然,打开 3306 端口并且服务器公开可见)。


小智 5

确实可以是另一种方式:如果他们有权访问 mysql,他们就可以访问服务器操作系统本身。

  1. MySQL LOAD_FILE 和 SELECT ... INTO OUTFILE 查询使 mysql 用户能够在底层文件系统上读写文件。mysql 用户也可以访问的任何文件(您的 MySQL 是否以 root 身份运行?)。如果在 linux/UNIX 下只需查询 SELECT LOAD_FILE('/etc/passwd') 并看到他们咧嘴笑。如果 mysqld 以 root 身份运行,您可以尝试 SELECT LOAD_FILE('/etc/shadow') 并观看您的系统管理员哭泣。
  2. 很多时候在 linux 下,mysql 用户“root”与服务器的“mysql”用户(运行 mysqld 的用户)具有相同的密码。然后,如果这个密码是微不足道的(或者可以通过美杜莎 / hydra 之类的自动化工具找到),那么您可以直接通过 SSH/telnet 连接到数据库服务器并四处游荡。


Mar*_*son 5

这里似乎被忽视的是,您信任可信网络上的用户吗?

坦率地说,我不知道,因为我知道我刚开始从事 IT 行业时是什么样的。我会在我无权进入的领域进行刺探和刺探,坦率地说,一个弱 MySQL 密码对我来说会很高兴,因为我会碰碰运气并进入,我可能会造成严重破坏(意外地,当然)。

如果有人使用社交工程进入您的可信网络怎么办?那你怎么办?如果他们在防火墙后面的机器上,那么你坚如磐石的防火墙安全就会被破坏,他们会直接进入机器。

强密码的做法非常简单,而且有很多密码管理工具可以轻松保证密码的安全,因此没有理由不这样做。