如何安全地存储和访问用户会话数据


How to safely store and access user session data

我目前正在学习Web应用程序中的安全方面。

我的应用程序用于通过成功登录时创建的cookie来识别当前用户。它包含用户的 ID。每次用户向数据库发出请求时,我的应用程序都会使用该 id 仅选择与此 id 关联的那些结果。

但是,正如我所了解到的,简单地更改该cookie的值并因此可以访问其他用户的数据完全没有问题。

我现在的问题是:我如何安全地存储这些数据并使其可用于PHP和Javascript?

我想到了HTML5 sessionStorage,但它也很脆弱。

我的第二个想法是用PHP只将其存储在$_SESSION变量中,但是我无法通过Javascript访问它的值。

我觉得我无法理解如何创建一个安全且功能强大的用户管理系统的基本概念。

任何帮助将不胜感激。

我只会将用户 ID 数据存储在会话中。为什么需要饼干?要在JS和PHP之间进行通信,请使用ajax。最好的库是jQuery.

简单的解决方案:

  1. 将用户密钥字段添加到数据库。
  2. 当用户登录时,生成一个随机的唯一字符串并将其保存在数据库中
  3. 将此字符串保存在 cookie 中。将用户 ID 保存在 Cookie 中。

下次访问时,从具有相应用户密钥和 ID 的数据库用户中进行选择。

它有点安全,因为字符串是随机的,所以只有蛮力有帮助。

字符串更长 - 更难暴力破解。

解决方案很简单,可以通过使用ID加密,检查IP等进行升级。