如何提高会话的安全性?
$this->session->userdata('userid')
我一直把这个小男孩扔到我的ajax电话旁边。有些情况我还没有。然后我就像是,使用来自DOM的id真的很安全吗?如果将DOM更改为破解用户帐户数据该怎么办?所以我就像我猜的那样,当用户做任何与他们的id相关的事情时,只应引用会话。我是对的吗?
像这样引用:
$this->some_model->do_data_stuff($dataId, $this->session->userdata('userid'));
然后我读到了这个:
存储在用户cookie中的会话数据数组包含a 会话ID,除非您将会话数据存储在数据库中否则不存在 验证它的方法。对于一些需要很少或不需要的应用 安全性,可能不需要会话ID验证,但如果你的 应用程序需要安全性,验证是强制性否则,一个 用户修改其cookie可以恢复旧会话。 http://codeigniter.com/user_guide/libraries/sessions.html
我不会存储财务数据,但我不希望我网站上的任何数据损坏。 SO是否使用会话验证?这个验证需要多少开销?会话将如何被黑客入侵?使用会话安全性需要注意哪些事项?
答案 0 :(得分:20)
使用CodeIgniter会话与数据库将是相当安全的。您只需要信任用户提供的输入即可。即使您使用的是AJAX,CodeIgniter会话也可以像任何标准调用一样工作,因此相同的安全性也会继续。
CodeIgniter会话会发生的情况是服务器存储cookie,每次用户执行可以更改cookie内容的操作时,首先会将其与之前的cookie进行比较。
如果用户在浏览器中更改了会话cookie的内容,CodeIgniter会在下次服务器调用时注意到,并为该用户创建一个新会话,基本上将其注销。
CodeIgniter并不真正需要用户浏览器中存储在cookie中的数据,只要你正在使用
$this->session->userdata('userid');
您将获得受信任的服务器端数据。用户无法更改。此外,cookie可以加密,你应该加密。只需查看CodeIgniter的config.php。
会话数据还有其他一些保护措施:短刷新超时(通常为300秒),它会检查IP是否更改,以及浏览器是否更改。换句话说,在最坏的情况下,欺骗会话数据的唯一方法是使用相同版本的浏览器,具有相同的IP,直接访问计算机以复制/粘贴cookie,并完成此操作在5分钟内。
所以,请注意坐在你身边的那个人!