所以我没什么可说的,我不想使用cookie,所以像快速会话这样的东西不能作为选项。
我使用nodejs和express,没有前端JavaScript,并使用mysql作为数据库。我真的不知道该怎么做,所以我想听听你的意见。我已经尝试在互联网上搜索。
在处理常规网页时,请求中只有四个位置来存储标识会话的信息。
你已经排除了cookie。
自定义标头可以适用于编程请求,并且经常被 Javascript 代码与各种类型的令牌一起使用。但是,如果您需要 Web 浏览器自行维护或发送会话,那么自定义标头也将不再适用。
这会在 URL 的路径中留下查询参数或参数。这两者都有同样的问题。您可以创建一个 sessionID,然后将类似的内容附加?sessionID=92347987到您的网页向服务器发出的每个请求中。有一些服务器端框架以这种方式进行会话(大多数已经被 cookie 淘汰)。这有各种各样的问题(这就是为什么它不再经常使用的原因)。以下是一些缺点:
您必须动态生成网页中的每个链接,以便它将包含正确的 sessionID 作为链接的一部分,这样如果用户单击它,生成的 http 请求将包含正确的 sessionID。
必须禁用或绕过所有浏览器缓存,因为您不希望浏览器使用可能包含错误 sessionID 的缓存网页。
用户书签基本上不起作用,因为他们最终会为带有 sessionID 的 URL 添加书签,而该 URL 不会永远持续下去。
用户可以sessionID=xxxx在他们的所有 URL 中看到。
记录请求 URL 的网络基础设施将包含 sessionID(因为它位于 URL 中)。这被认为是一种安全风险。
综上所述,通过这些权衡,它可以发挥作用,但它并不被认为是“最安全”的方式。