Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 数据库是如何被黑客入侵的?关于腌制等的问题_Php_Security_Salt_Brute Force - Fatal编程技术网

Php 数据库是如何被黑客入侵的?关于腌制等的问题

Php 数据库是如何被黑客入侵的?关于腌制等的问题,php,security,salt,brute-force,Php,Security,Salt,Brute Force,请容忍我,我只学了几周PHP,所以示例代码可能会让我困惑。我想我终于明白了腌制!这是为了保护数据库中的密码,如果被破坏的话 我不明白的是,如果黑客试图找出用户的密码(假设这是他们的目标),为什么他们必须破解哈希?这不是更容易吗?对密码猜测的唯一防御措施是实施密码输入限制X每天的次数还是验证码 数据库一开始是如何被黑客入侵的?是更多的密码猜测,还是可以通过MySQL注入获得哈希 谢谢 satting和hash的思想是在数据库被破坏的情况下保护密码,无论是通过SQL注入、缓冲区溢出攻击还是仅仅通过进

请容忍我,我只学了几周PHP,所以示例代码可能会让我困惑。我想我终于明白了腌制!这是为了保护数据库中的密码,如果被破坏的话

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

数据库一开始是如何被黑客入侵的?是更多的密码猜测,还是可以通过MySQL注入获得哈希


谢谢

satting和hash的思想是在数据库被破坏的情况下保护密码,无论是通过SQL注入、缓冲区溢出攻击还是仅仅通过进入服务器机房并从服务器中取出磁盘。salt不能防止密码猜测,但有助于防止攻击者获取数据。

是的,salt可以防止密码被转换为明文。它还阻止某人说“站点A上的加密密码与站点B上的密码相同,因此用户在两个位置都有相同的密码”

这不仅仅是为了保护用户免受黑客攻击;这也是为了保护他们不受你的伤害

是的,防止密码猜测的唯一防御措施是减慢或禁止重复尝试。大多数验证码都是可破解的,你不能对拥有原始数据库副本的人施加验证码或猜测限制。因此,即使是加密的数据也不要落入恶意个人的手中。不要让它们访问.htpasswd或/etc/shadow文件或数据库

如果您不使用salt,那么(提前)生成彩虹表要比直接猜测非常强的密码容易得多。关键是,构建反向映射hash->password只需一次,并且(未加盐的)hash对任何拥有rainbow表的人来说都将永远被破坏


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

这里的关键是,他们不会试图获取用户的密码以在您的站点上使用,尽管在您修复漏洞之后,这可能会很有用。这样,无论出于何种原因,如果你的网站遭到破坏,你的用户就不会受到损害。人们有重复密码的倾向;这可能很糟糕。

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


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

当你说“这不会更容易吗?”你指的是什么?在盐分散列中,“这不会更容易吗?”指的是之前的陈述。通过暴力破解密码会比尝试获取哈希更容易吗?不会,因为在网站上尝试所有密码变体可能很容易达到登录尝试率限制,或者至少会产生大量日志流量。因此,这可能需要很长时间才能引起人们的注意。盐类会强化哈希,以抵抗计算前攻击(彩虹表),而不是“反转为明文”(哈希(盐类或非盐类)无法反转)。此外,生成一个彩虹表和破解一个密码一样昂贵。但是,在计算彩虹表之后,您可以在表中查找哈希并快速找到匹配的输入。@Jacco:如果您有彩虹表,您可以将哈希映射到(一些匹配的)明文中。因为用户倾向于选择低复杂度的密码,并且散列空间很大,所以您找到的明文几乎总是用户的密码。所以不,盐渍是为了防止通过彩虹表格反转成明文。正如我所说,生成彩虹表比破解单个密码更容易的原因是彩虹表可以提前创建。