0

在 php 中,根据手册:“访问您网站的访问者被分配了一个唯一的 id,即所谓的会话 id。这要么存储在用户端的 cookie 中,要么在 URL 中传播。”

我何时以及为什么更喜欢通过 url 而不是 cookie 传递会话?

4

3 回答 3

1

主要区别在于您的会话令牌可能会通过引荐来源网址发送到不同的域,但这可以通过检查源 IP 地址来缓解。除此之外,cookie 在 HTTP 标头中发送,URL 最终在请求行中。在安全性方面没有真正的区别,因为 HTTPS 对两者都进行了加密。但是请求 URL 可能会写入日志文件中,这是一个(很明显)风险。

Cookie 是传递会话令牌的默认处理程序,但是当它们在客户端被禁用时,您可以回退到查询字符串中的参数。

于 2013-04-05T07:34:32.120 回答
0

要回答这个问题,

Cookie 可以修改(嗯,是的,被黑了),但会话不能。

于 2013-04-05T07:30:27.657 回答
0

网址中的会话:

  1. 在 url 中执行 session id 是一项相当大的工作。
  2. 修复由 cookie 引起的安全问题只需少量工作。
  3. 让每个网址都有结尾 ?session_id=foobar23454364634 看起来更丑

cookie 中的会话:

  1. 携带带有 cookie 的 session_id 几乎没有多少工作量。
  2. 意识到由 sessino cookie (XSRF) 导致的安全问题是一项中等量的工作。
  3. 网址未修改。

您可以选择自己的方式来实现两者并让用户选择。

于 2013-04-05T07:39:59.913 回答