将会话标识符作为查询字符串参数传递

yoj*_*o87 1 security cookies session session-cookies

是否有任何安全实践/技术/注意事项,例如在(长时间/连续)轮询或客户端和服务器之间的正常请求期间,会话 ID 作为查询字符串参数而不是存储在 cookie 中的值被发送/传递到服务器?

当有人从查询字符串中窃取此会话 ID 并使用它来冒充自己时,我可以想到会话劫持或嗅探,但我认为 cookie 值也会发生同样的事情(我想这只能通过使用 https 来防止)。

Jas*_*ean 5

将会话令牌作为 URL 参数传递时,您特别需要担心的两件事是浏览器历史记录和服务器日志。URL 参数通常存储在两者中,然后无论您是否使用 SSL,都会以纯文本形式公开。

例如,如果最终用户将它们从浏览器复制并粘贴到 Twitter,它们也可能会意外暴露。

这听起来不像您在谈论正常浏览。但是如果你是,那么强烈建议不要使用 URL 参数。

您还提到了轮询,但根据我的经验,如果 cookie 可用,则它会在轮询请求中一起发送,从而无需将其放在 URL 中。

对于服务器到服务器的流量,您仍然需要担心 ID 被保存在服务器日志中。

我听说过在 URL 中使用会话令牌的唯一理由是容纳禁用 cookie 的用户。我更愿意假装这些用户不存在。

  • 如果您的会话令牌足够长且足够随机,那么我认为其中两个相同的机会虽然在技术上是可能的,但将是天文数字。如果您仍然担心它,那么也许您可以让请求包含一个 applicationid(在 URL 中会很好)。然后用applicationid结合session token来区分。 (2认同)