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

时间:2011-09-08 16:12:41

标签: session cookies security session-cookies

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

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

2 个答案:

答案 0 :(得分:4)

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

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

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

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

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

我曾经听说过在URL中使用会话令牌的唯一论据是容纳禁用cookie的用户。我更喜欢假装那些用户不存在。

答案 1 :(得分:2)

除了Jason提到的风险之外,第三个风险是会话令牌可能会通过Referer:标头向其他网站披露。我不建议将会话令牌作为查询字符串参数发送。