如何将$_COOKIE[fe_typo_user]与fe_sessions表中哈希后的ses_id匹配?
不建议禁用ses_id哈希处理
这个特性是TYPO3升级后新增的安全措施,直接关闭会大幅降低会话安全性,容易被劫持,所以优先不考虑这种操作。对$_COOKIE[fe_typo_user]做哈希处理实现匹配
TYPO3的ses_id哈希是用站点加密密钥+原始会话ID生成的,你可以用以下代码处理Cookie值来匹配:// 取出Cookie里的原始会话ID $rawSessionId = $_COOKIE['fe_typo_user'] ?? ''; // 获取TYPO3配置里的加密密钥 $encryptionKey = $GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey']; // 生成和ses_id一致的哈希值 $hashedSessionId = hash('sha256', $rawSessionId . $encryptionKey);之后用
$hashedSessionId就能和fe_sessions表中的ses_id字段匹配上了。特殊场景下禁用哈希处理(强烈不推荐)
要是实在有必要关闭这个特性,可在LocalConfiguration.php里添加如下配置:$GLOBALS['TYPO3_CONF_VARS']['FE']['hashFrontendSessionId'] = false;注意:修改后要清空现有会话数据,而且会带来明显的安全隐患,务必谨慎权衡。
内容的提问来源于stack exchange,提问作者Marc
相关产品推荐
相关产品推荐

