gpt4 book ai didi

php - session ID 散列是否比普通存储更安全?

转载 作者:行者123 更新时间:2023-11-29 06:38:48 25 4
gpt4 key购买 nike

我有一个 PHP/MySQL 应用程序,我将 session 数据存储在我的数据库中。下面是相关处理程序的一些伪代码:

function session_read($sessionId) {
$result = query('select session_data from sessions where id = ?', $sessionId);
if(!$result) $result = array('session_data' => '');
return $result['session_data'];
}

function session_write($sessionId, $data) {
query('replace into session_data set data = ? where id = ?', $data, $sessionId);
return true;
}

我突然想到,在 session 期间, session ID 可能与用户密码一样敏感。我想知道在评估之前对 session ID 进行哈希处理是否会提供额外的安全性?

function session_read($sessionId) {
$sessionId = hash('sha512', $sessionId);
$result = query('select session_data from sessions where id = ?', $sessionId);
if(!$result) $result = array('session_data' => '');
return $result['session_data'];
}

function session_write($sessionId, $data) {
$sessionId = hash('sha512', $sessionId);
query('replace into session_data set data = ? where id = ?', $data, $sessionId);
return true;
}

这样,即使攻击者设法检索 session 表的转储,他们也无法轻易制作 cookie 来劫持任何用户 session 。

这是有用的做法吗?

编辑:网站通过 HTTPS 提供服务,cookie 是 HTTPONLY。

最佳答案

I am wondering if hashing the session ID before evaluating it would afford additional security?

是的,确实如此。但仅针对攻击者只能从数据库中读取任意数据的情况,例如。 g.,通过 SQL 注入(inject),并想劫持一个事件 session 。在这种情况下,找到散列函数输出值(即存储的 session ID)的输入值(即传输的 session ID)将构成 pre-image attack。 .还有一个major goal of cryptographic hash functions is pre-image resistance .

关于php - session ID 散列是否比普通存储更安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22846420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com