2010-12-03 59 views
2

我读过使用数据库存储会话变量比将它们放入cookie更安全。我是否需要在CodeIgniter中手动激活会话变量的加密?

如果您使用CI会话库并将其设置为存储在数据库而不是cookie中,它会自动加密会话ID变量吗?

大家都说在数据库中存储会话变量时最好使用加密,但我不确定是否有另一个选项必须打开才能进行加密。

另外,如果您确实需要自己激活加密步骤,您将在哪里设置密钥?它是否是同一个加密助手类的一部分?

回答

5

不,CodeIgniter在存储会话数据时不会自动加密会话数据,无论它是在MySQL数据库还是在客户端使用cookie。

在system/application/config/config.php中设置0​​将激活cookie的加密。如果使用$config['sess_use_database'] = TRUE,那么cookie本身(存储客户端)将被加密,但实际会话变量(存储在数据库中)不会。

我的猜测是,这是因为加密存储在服务器端数据库中的数据与使用cookie存储实际会话变量时并不重要,因为用户无论如何都无法在数据库中看到或修改会话变量。

加密密钥需要设置使用$config['encryption_key']加密工作。

+0

“加密存储在服务器端数据库中的数据并不重要”,所以我们为什么要在数据库中散列密码?假设应用程序将敏感数据存储在数据库中存储的会话中,例如信用卡号码。我认为应该在会话中存储加密数据,而不管它存储在服务器端还是客户端。 – SaidbakR 2014-09-19 17:30:33

相关问题