我被提出了一个论点:“你不需要一个强大的mysql用户密码,因为为了使用它,他们已经有权访问你的服务器了。” 我们正在谈论一个4位数字的密码,这是一个真实商业网站上的标准英文字典词汇。
不用我自己的知识和经验来影响答案,我想向他们展示一些无私的第三方来源的答复。 有人在乎这个呢? 编程/实际答案将不胜感激。
无论谁发表这个论点似乎都是这样说的:“一旦有人踏进了这个门,就不妨给他们完全的机会”。 通过这个逻辑,防火墙就不需要你内部networking上的所有密码。
强密码是限制networking入侵造成的损害的一个步骤。 没有任何理由只是因为networking中的一小部分受到损害而失败。
这真的可以追溯到“ 深度防御 ”的概念,所以至less有一个强大的密码可以减缓它们,使你可以发现并阻止它们。 我喜欢把门控社区的钥匙与每个房子门上的钥匙相比较。
这取决于你的MySQL服务器是如何设置的。 如果它只接受来自家庭(127.0.0.1)ip的请求,那确实使它适度地更安全。
鉴于您允许远程IP的情况,这将成为一个更大的交易。
除此之外,在入侵的情况下有很强的安全性总是好的 – 更好的是尽可能less地走开。
会计中的小额存款箱有锁吗? 如果是这样,为什么? build筑物是否有物理安全?
你不需要一个强大的mysql用户密码,因为为了使用它,他们已经有权访问你的服务器
这是不正确的,因为mysql也可以在跨networking的客户端 – 服务器环境中使用,并且默认情况下,您唯一需要的是用户/传递来访问数据库(offcourse,打开3306端口并且服务器公开可见)。
事实上,它可能是另一种方式:如果他们有权访问mysql,他们可以访问服务器操作系统本身。
如果有人能够访问您的服务器,那么他们将不需要任何MySQL密码。 但是,如果他们只能作为非root用户和非web用户在服务器上执行应用程序,那么强大的MySQL密码仍然可以保存您的数据。 但是,大多数黑客来自networking,这意味着黑客将访问您的networking帐户,因此可以从PHP文件中提取数据库密码。
所有这些假设你的MySQL服务器不接受来自任何地方的连接,而是本地主机。 如果这样做,那么你需要一个强大的PW。
在这里似乎被忽视的是,你信任你的用户在可信networking上吗?
坦率地说,我不知道,因为我知道当我从IT开始的时候是什么样的。 我会在我没有权利的地方戳戳,坦白地说,一个微弱的MySQL密码对我来说会是一种乐趣,因为我会采取一个锅运气的机会,并进入,我可以肆意蹂躏(偶然,当然)。
如果有人使用社交工程来进入你的可信networking呢? 那你做什么? 如果他们在防火墙后面的机器上,那么你的坚如磐石的防火墙的安全性就被破坏了,并且直接进入机器。
强大的密码操作起来非常简单,并且有很多密码pipe理工具可以让密码安全变得简单,所以没有理由不这么做。
呃。 如果你的服务器被IPlocking,并且你的用户被限制在一组你不关心信息的表上,那么这不是一个大问题。
另一方面,我通过在键盘上敲打一分钟来设置我的MySQL密码,然后将所得到的乱码粘贴到一个受保护的文件中,每当我需要login时,都会在代码中引用它。这就是应该如何工作的。
为什么要轻松? 如果密码是附加到有限的本地帐户(因为他们都应该),那么你为什么键入它? 如果不是,它应该有一个密码,其强度是相对于你保护的数据的值。
mySQLs帐户/访问信息存储在与实际数据库不同的文件中。 因此,您可以简单地拖放一个不同的文件到它的位置。 有了mySQL,如果他们有文件系统的相关部分的写入权限,游戏就结束了。
因为要求改变…
因此,今天的服务器仅限于接受只连接到本地机器的MySQL连接,明天可能会被打开,以便使用外部工具来pipe理数据库。 进行此设置的人可能不知道使用的密码极其微弱。
如果你的用户由于不得不记住一个好的,强壮的(比如:长,随机的)密码而感到不便,那么考虑把它变得非常强大,然后把它存储在.my.cnf
– 比使用密码更加方便input。 当然,这也有安全隐患,但是你将不得不将密码存储在某个地方,例如访问它的应用程序,所以你已经保护了密码的副本。
但也读了@meagar说。
他们已经可以访问的前提是不正确的。 但是,如果他们有访问权限,而且他们有一个非特权帐户,他们仍然可以轻松地破解mysql密码。
另外,如果服务器是实时生产服务器,则比在互联网上宣传自己。 这意味着在某些时候,某人会尝试对该服务器进行powershell攻击,包括mysql,端口和用户帐户。
如果您关心数据,那么基本步骤是为数据库提供不同于root用户的root密码。 其他人则表示,对于用户和程序,您也应该拥有最低的权限。
一个4字符的密码可以在几分钟内在一台相当便宜的电脑上被黑客入侵。
我可能只是在重复别人的话,但是你对经理的弹药越多越好。
许多现实生活场景的原因已经被post所覆盖,所以我会加上“哲学”一个。 使用强大的密码并采取预防措施来加强安全性是一种工作理念。 一种思考的方式。
现在使用弱密码,因为你是mysql,只能在127.0.0.1上运行,只有root用户有权访问它,这表明你没有想到。 如果有一天你需要授予通过networking访问你的mysql,会发生什么情况。 你会记得你覆盖的所有安全整体吗?
一个好的pipe理者把最糟糕的情况首先放到偏执狂的地步。
这取决于用户拥有什么权利,您应该始终locking在多个级别的东西。 这也取决于你存储在数据库中的数据。 另外假设在MySQL中有一个漏洞,允许他们接pipe整个数据库,但他们只需要login到任何用户帐户。 如果你的密码很强大,这将使这个漏洞静音。 但这真的只是取决于你的具体情况。
在mysql中模拟别人是非常容易的。 给定一个没有密码(最弱的安全性)的用户ID,只需使用mysql -u userid
。 如果它有一个密码,它会有点困难,但是一个弱密码使得它很容易。 如果root没有密码,我可以通过mysql -u root
来访问mysql -u root
。 然后,我可以在root的数据库中做任何事情。
在安全中使用主机规范也是一个好主意,特别是如果远程访问是可用的或可能的。
文件中的密码可以并且应该由权限来保护。 通过root访问,或密码文件的所有者是微不足道的。 如果可能的话,应该使用磁盘上的密码encryption。 这使得访问稍微困难,但仍然脆弱。
那么,如果你不是自己托pipeMySQL数据库,但它是在托pipe服务,并有人获得访问您的服务器的IP地址,用户名和密码是你的最后一道防线。 有一个安全的用户名/密码总是好的。