Php 通过url传播会话

Php 通过url传播会话,php,Php,在php中,根据手册:“访问您的网站的访问者被分配了一个唯一的id,即所谓的会话id。它要么存储在用户端的cookie中,要么在URL中传播。” 什么时候以及为什么我应该通过url而不是cookie来传递会话?回答这个问题 Cookie可以修改(嗯,是的,被黑了),但会话不能修改。主要区别在于,您的会话令牌可以通过推荐人发送到不同的域,但这可以通过检查原始IP地址来缓解。除此之外,Cookie以HTTP头发送,URL以请求行结束。在安全性方面没有真正的区别,因为HTTPS对两者都进行加密。但是请

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


什么时候以及为什么我应该通过url而不是cookie来传递会话?

回答这个问题


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

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

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

url中的会话:

  • 在中执行会话ID是一项相当大的工作 URL
  • 修复cookie导致的安全问题只需少量工作
  • 让每个url都有结尾看起来更难看?session_id=foobar23454364634
  • Cookie中的会话:

  • 携带带有cookie的会话id几乎不需要多少工作
  • 了解Sessionno Cookie(XSRF)导致的安全问题是一项中等工作量的工作
  • URL不会被修改

  • 您可以选择自己的方式来实现这两种方法,并让用户选择。

    如果您担心用户不传输cookie,您的意思是通过url传递会话比cookie方法更安全吗?这真的没有任何意义。Cookie是从服务角度的用户输入。当会话令牌通过cookie传递时,如果您传递了错误的文本,您将无法通过身份验证。您的最后一句话建议我应该在应用程序中通过cookies和url实现会话,如果用户禁用了cookies,则使用后一种方法作为备份。对吗?我真的建议只使用cookies:)实现url版本并不容易,您必须注意安全隐患,并且没有人真正禁用cookie(或JavaScript btw)