如果我删除Security.salt和Security.cipherSeed值,则管理员登录不起作用。
Configure::write('Security.salt', '');
Configure::write('Security.cipherSeed', '');
请帮助
答案 0 :(得分:2)
当然,管理员登录无效。 AuthComponent需要将字符串转换为hash
会话中的用户数据,以及在数据库上保留密码。
由于您已经在您的数据库上进行了密码哈希,当您提交管理员登录表单时,它会将您刚刚通过输入发送的密码哈希并与数据库进行比较,以查看它们是否匹配,如果有,则权限是理所当然的。
考虑到您删除了salt,哈希现在将具有与提供的盐相比不同的行为,因此,它将为相同的输入输出不同的哈希值,这意味着权限被拒绝并将保持这样直到您回到完全相同的salt
。
当您使用cake bake
命令烘焙项目时,它将为您生成并替换默认盐。
请记住,当您更改此盐时,需要重新设置存储在数据库中的每个密码,然后您需要为用户提供一种方法来执行此操作,例如“忘记密码”机制。
<小时/> 注意: This可能会显示为可选步骤,但它更像是“必须执行”配置,应该在安装后立即执行。请记住,使用广泛知道的盐是一个巨大的安全缺陷。