我读过,使用数据库存储会话变量比将它们放入cookies中安全得多。
如果使用ci会话库并将其设置为存储在数据库中而不是cookies中,它是否会自动加密会话id变量?
每个人都在说,在数据库中存储会话变量时最好使用加密,但我不确定是否必须启用另一个选项才能进行加密。
另外,如果您确实需要自己激活加密步骤,您将在哪里设置密钥?它是同一个加密助手类的一部分吗?

最佳答案

不,codeigniter在存储会话数据时不会自动加密会话数据,无论是在数据库(如mysql)中还是在客户端使用cookies。
在system/application/config/config.php中设置$config['sess_encrypt_cookie'] = TRUE将激活cookies的加密。如果使用$config['sess_use_database'] = TRUE,则cookie本身(存储的客户端)将被加密,但实际会话变量(存储在db上)将不会加密。
我的猜测是,这是因为加密存储在服务器端数据库中的数据不如使用cookie存储实际会话变量时重要,因为用户无论如何都无法在数据库中看到或修改会话变量。
需要使用$config['encryption_key']设置加密密钥,加密才能正常工作。

关于database - 我是否需要在CodeIgniter中手动激活 session 变量的加密?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4349879/

10-12 18:25
查看更多