进行会话最安全的方法是什么?

-1 node.js express

所以我没什么可说的,我不想使用cookie,所以像快速会话这样的东西不能作为选项。

我使用nodejs和express,没有前端JavaScript,并使用mysql作为数据库。我真的不知道该怎么做,所以我想听听你的意见。我已经尝试在互联网上搜索。

jfr*_*d00 5

在处理常规网页时,请求中只有四个位置来存储标识会话的信息。

  1. 随每个请求一起发送的 Cookie
  2. 每个请求的自定义标头
  3. 每个请求的查询参数
  4. 在 URL 的路径中

你已经排除了cookie。

自定义标头可以适用于编程请求,并且经常被 Javascript 代码与各种类型的令牌一起使用。但是,如果您需要 Web 浏览器自行维护或发送会话,那么自定义标头也将不再适用。

这会在 URL 的路径中留下查询参数或参数。这两者都有同样的问题。您可以创建一个 sessionID,然后将类似的内容附加?sessionID=92347987到您的网页向服务器发出的每个请求中。有一些服务器端框架以这种方式进行会话(大多数已经被 cookie 淘汰)。这有各种各样的问题(这就是为什么它不再经常使用的原因)。以下是一些缺点:

  1. 您必须动态生成网页中的每个链接,以便它将包含正确的 sessionID 作为链接的一部分,这样如果用户单击它,生成的 http 请求将包含正确的 sessionID。

  2. 必须禁用或绕过所有浏览器缓存,因为您不希望浏览器使用可能包含错误 sessionID 的缓存网页。

  3. 用户书签基本上不起作用,因为他们最终会为带有 sessionID 的 URL 添加书签,而该 URL 不会永远持续下去。

  4. 用户可以sessionID=xxxx在他们的所有 URL 中看到。

  5. 记录请求 URL 的网络基础设施将包含 sessionID(因为它位于 URL 中)。这被认为是一种安全风险。

综上所述,通过这些权衡,它可以发挥作用,但它并不被认为是“最安全”的方式。