我在Security.salt
参数中安装了以前的Cakephp 2.3.4时犯了一个错误。
我更改了文件Security.salt
中的lib/Cake/Utility/Debugger.php
个密钥,而不是将它们放在文件app/Config/Core.php
中。
现在我的网站正在投入生产,它拥有超过25,000个带密码的用户帐户。
升级到最新版本2.4.5时发现错误。
我现在该怎么办?我应该在lib/Cake/Utility/Core.php
再次进行更改吗?
如果我在app/Config/Core.php
中进行更改,则用户将无法再连接。
我真的很担心这件事。 这是否代表安全问题?
感谢您的帮助
答案 0 :(得分:0)
据我所知,在core.php
中更改它并不好,我个人不建议这样做,假设在安装CakePHP后已经改变了。但是我很担心为什么你试图改变那个文件,因为你有那么多“用户”(对于那个动作)。你应该多读一些关于我认为的蛋糕,可能还有this。虽然它被称为可选配置,但它更像是 “必须执行”配置 ,并且只是在安装后或最多执行,在投入生产之前。
如果您的情况如此,并且您希望更新此安全盐与已经参与网站的许多用户,您可以采用rainbow table方法,并破解您的系统以获取密码而不是隐藏它们。但我建议采用更优雅的方式。
现在,考虑一下Security::hash()
函数,您可以这样做:
$myHash = Security::hash($text, 'sha1','my-salt');
假设您正在使用标准哈希算法SHA1,如果您只是将第三个参数传递给true,那么如果某个哈希算法在您的系统上创建了该密码,则会给您相同的哈希值。但如上所述,您可以测试新的盐... 所以,你可以自己做这件事:
Security.salt
并交换用户表。这不是一个非常聪明的方法,但是有一种方法可以解决这个问题而不必过于深入。为了更快地帮助完成这项工作,您可能会向所有用户发送大量电子邮件,并说您需要更改密码以改善网站安全性等等...
在这种特殊情况下,如果您只想更正错误文件中更改的salt密钥,则可以 check it here ,将其复制并粘贴回原位。虽然您可以看到列出的分支(以及唯一的2.x)是2.5,但我已经检查过它与版本2.3.0和2.3.5的值相同,因此,没有合理的解释为什么2.3。 4会有不同的。使用它应该可以准确地回到原来的位置,没有任何问题。
答案 1 :(得分:0)
无法在哈希之间进行转换。这就是重点。一个使用salt和散列来防止密码被读取(并反转!)。 (我知道是一种具有高级数学的方式所有这些,但你在这里寻找实用的解决方案。)
我建议您在这种情况下可以更改Security.salt
文件中的core.php
。
这将有效锁定所有人,但它也会提升你的哈希值,因为你现在有了自己的盐。
现在,执行此操作后,您将更新“登录”页面以说明:
“我们已经收紧了服务器的安全性。因此,某些帐户可能已被锁定。如果您在登录时遇到问题,请使用密码重置功能,并使用以下链接”
所以现在每个用户都将重置自己的密码,因此使用新的Salt和hash添加一个密码。
对于你来说,它看起来像一个巨大的负载(25,000),但从用户的角度来看,这是一个小麻烦,只需要解决一次。
由于并非所有用户都会同时登录,因此不会导致服务器过载。
另一个主动方法是发送一份完整解释情况的时事通讯。但是,您可以判断您的受众是谁以及是否对技术细节感兴趣。
在我看来,由于更严格的安全性而锁定帐户总是更好,允许访问失去安全性。 (换句话说......先锁定!稍后再提问!)