代码之家  ›  专栏  ›  技术社区  ›  Tarik

数据库如何被黑客攻击?关于腌制等的问题

  •  2
  • Tarik  · 技术社区  · 16 年前

    不好意思,我只学了几个星期的PHP,所以示例代码可能会让我困惑。我想我终于明白了腌制!它是为了保护数据库中的密码,如果被破坏的话。

    我不明白的是,如果黑客试图找出用户的密码(假设这是他们的目标),他们为什么要破解哈希?这不容易吗?密码猜测的唯一防御是实现密码输入的限制x一天的次数或验证码?

    数据库首先会如何被黑客攻击?是更多的密码猜测,还是可以通过MySQL注入获得哈希?

    谢谢!

    4 回复  |  直到 9 年前
        1
  •  3
  •   Borealid    16 年前

    是的,Salting是为了防止密码被转换成明文。它还阻止人们说“加密的密码在站点A和站点B上是相同的,所以用户在两个地方都有相同的密码”。

    这不仅是为了保护用户不受黑客攻击,还为了保护他们不受黑客攻击 .

    是的,对密码猜测的唯一防御就是减慢或禁止重复尝试。大多数验证码都是易碎或破损的,您不能对拥有原始数据库副本的人施加验证码或猜测限制。所以即使加密的数据也要远离恶意的个人。不要让它们出现在.htpasswd或/etc/shadow文件或数据库中。

    如果您不使用salt,那么(提前)生成彩虹表比直接猜测一个非常强的密码容易得多。关键是构建反向映射哈希->密码可以完成一次,并且(未加安全保护的)哈希将永远断开给拥有彩虹表的任何人。

    如果您的提供商受到攻击,如果您的代码中存在注入漏洞,如果您的数据库用户帐户密码被猜到,如果您的提供商使用易趣出售(假定已擦除)硬盘驱动器,而该硬盘驱动器上有您的数据库的三年期副本,则可能会对数据库进行黑客攻击…它可能以多种方式发生。

        2
  •  4
  •   che    16 年前

    加盐和散列的思想是保护密码 万一 无论是通过SQL注入、缓冲区溢出攻击,还是仅仅通过到服务器机房将磁盘从服务器中拉出,数据库都受到了破坏。Salting不会保护您不受密码猜测的影响,但有助于防止攻击者访问数据。

        3
  •  1
  •   zebediah49    16 年前

    这里的关键是他们不想获取用户的密码 你的 网站,尽管在你修复了可能有用的漏洞之后。这样一来,无论出于什么原因,如果你的网站被破坏,你的用户都不会受到损害。人们有重复密码的倾向,那是很糟糕的。

        4
  •  1
  •   Mark Baker    16 年前

    这可能是愚蠢的,但许多人对不同的网站使用相同的密码。如果你的数据库被破坏,密码被简单地散列,那么黑客可以使用一些技术(例如彩虹表,甚至一些网站)来找到导致相同散列的密码值。然后可以使用该密码尝试访问用户拥有帐户的其他站点。

    如果数据库中的密码是咸的,那么这将变得非常困难…如果其他的网站也用不同的盐来盐你的密码,那么对黑客来说就变得不切实际了。