【问题标题】:CodeIgniter 2.2.0 HMAC mismatch errorCodeIgniter 2.2.0 HMAC 不匹配错误
【发布时间】:2014-07-30 01:51:43
【问题描述】:

更新:即使下载了“fixed” 2.2.0,更新日志文件仍然充满:

会话:HMAC 不匹配。会话 cookie 数据与之前的不匹配 预计。

从 CodeIgniter 2.1.3 升级到 2.2.0 后出现错误:

会话:HMAC 不匹配。会话 cookie 数据与之前的不匹配 预计。

已启用 Mcrypt 扩展。如果我设置 $config['sess_encrypt_cookie'] = FALSE; (不是生产选项)没有错误。非常感谢任何帮助。

【问题讨论】:

  • 我遇到了完全相同的错误。唯一不同的是我从 2.1.4 升级到了 2.2.0

标签: php codeigniter codeigniter-2 hmac


【解决方案1】:

在system/libraries/Sessions.php函数中_set_cookie函数变化:

if ($this->sess_encrypt_cookie == TRUE)
{
    $cookie_data = $this->CI->encrypt->encode($cookie_data);
}
else
{
    // if encryption is not used, we provide an md5 hash to prevent userside tampering
    $cookie_data .= hash_hmac('sha1', $cookie_data, $this->encryption_key);
}

到:

if ($this->sess_encrypt_cookie == TRUE)
{
    $cookie_data = $this->CI->encrypt->encode($cookie_data);
}

$cookie_data .= hash_hmac('sha1', $cookie_data, $this->encryption_key);

看看它是否有效。

见:https://github.com/EllisLab/CodeIgniter/issues/3086

【讨论】:

    【解决方案2】:

    重新下载 CI 2.2 存档,它被重新标记和替换。

    【讨论】:

    • 不要从官网下载,从github release下载
    • ...我是给你 github 链接的人。你只是不知道如何清除浏览器的下载缓存。
    【解决方案3】:

    CI_Input->_sanitize_globals() 函数有时会破坏加密会话 为了解决这个问题,我更改了 /system/core/Input.php(2.2 版,第 636 行)

    $_COOKIE[$this->_clean_input_keys($key)] = $this->_clean_input_data($val);
    

    if(!(config_item('sess_encrypt_cookie') === TRUE) || $key!=config_item('sess_cookie_name'))
        $_COOKIE[$this->_clean_input_keys($key)] = $this->_clean_input_data($val);
    

    【讨论】:

    【解决方案4】:

    除了上述更正之外,我还需要更改以下行:

    if ($key === $sess_cookie_name && config_item('sess_encrypt_cookie'))
    

    收件人:

    if ($key === config_item('cookie_prefix') . $sess_cookie_name
        && config_item('sess_encrypt_cookie'))
    

    希望对你有帮助, 问候。

    【讨论】:

    • 请更新您的答案,解释您的代码为何有效。
    • 提供的补丁不尊重cookie前缀。
    猜你喜欢
    • 2015-02-02
    • 1970-01-01
    • 2021-05-26
    • 1970-01-01
    • 1970-01-01
    • 2020-10-18
    • 1970-01-01
    • 1970-01-01
    • 2018-02-02
    相关资源
    最近更新 更多