Aur*_*rel 1 security cookies session codeigniter
我想知道用户如何操纵他的 cookie。
据我所知,CI 可以知道(因为 cookie 末尾的 cookie_value/unique_key 关系)以及 CI 何时更新 cookie。
他记录了这个:
会话 cookie 数据与预期不符。这可能是一次可能的黑客攻击
关键是,有些人讲述了使用本机 php 会话来存储登录数据,但被盗的风险是相同的(对于 CI cookie 可能更少)。我能看到的唯一区别是用户可以看到 CI cookie 会话中存储了哪些数据。
那么 CI 会话 cookie 是否安全?或者为什么它不如原生 php 会话安全?
对于高流量网站,我也想降低负载费用。
对不起我的英语不好..
编辑以解释 CI 会话验证:
假设您不想存储敏感数据,会话 cookie 将不会被加密,也不会保存在数据库中。
根据 CI 2.1.3 会话库,方法CI_Session::sess_read()在第 135 行和方法CI_Session::ses_write()在第 235行声明。
当 CI 创建 cookie 时,它把这些数据
[array]
(
'session_id' => random hash,
'ip_address' => 'string - user IP address',
'user_agent' => 'string - user agent data',
'last_activity' => timestamp
)
Run Code Online (Sandbox Code Playgroud)
它序列化这个数组并在最后放置一个 md5 哈希(来自序列化数据和配置中提供的加密密钥)。
// if encryption is not used, we provide an md5 hash to prevent userside tampering
$cookie_data = $cookie_data.md5($cookie_data.$this->encryption_key);
Run Code Online (Sandbox Code Playgroud)
所以会话库什么时候会从下一个http请求到CI进行初始化
它会这样做并问自己:
data并hash从会话cookiehash等于md5( data + encryption_key )吗?data可以去系列化?如果这些答案中的任何一个为否,CI 会话将被销毁并重置。
所以请告诉我,这种情况下除了 PHP 本机会话之外的相对风险。
仅回答关于“请告诉我,除了 PHP 本机会话之外的相对风险对于这种情况”的部分。
窃取会话的一个好方法是进入某人的计算机并复制 cookie 并将其发送给自己(无论是否使用数据库表!!!!!!)然后在另一台计算机上重新使用该 cookie。当然,每个 Web 应用程序都容易受到这种攻击。
虽然我喜欢@am05mhz 在现实中的想法,如果你在一家公司,你可能会以相同的 IP 地址出现在网络服务器上,我仍然成功地窃取了用户会话的副本,现在可以伪装成他.. ...在我看来,虽然我发现这个想法很有趣,但我想得越多,整个 ip 的事情就越不值得。
在其他基于服务器端会话的应用程序中,这也可以通过获取映射到服务器端会话的 cookie(或 jsessionid,如果在 java 和 cookie 已关闭)......毕竟总是有一些状态将您映射到服务器端会话的 Web 浏览器。
无论如何,如果您使用 https 并且您在 cookie 或 http 标头中使用了正确的 secureOnly 标志(记不清确切的标志),那么您将获得的安全性差不多。
如果您发送整个会话客户端,您真正需要担心的唯一一件事就是从不将关键数据放入其中,例如密码或信用卡号等。
我们还会在 20 分钟后让我们网站上的用户超时并删除 cookie 作为安全措施。
我不知道是否对任何人有帮助,但我想我会发布它。
编辑:重温 ip 的事情。对于 http,ip 工作得很好,因此您公司外的任何人都无法窃取您的会话,但您公司内的任何人仍然可以窃取您的会话。(即,无论是否使用数据库会话存储,如果通过 http 登录,发送您的会话 cookie 都非常容易受到影响)。
院长