Php 通过ge使用无Cookie会话的最佳方式

Php 通过ge使用无Cookie会话的最佳方式,php,session,session-cookies,Php,Session,Session Cookies,出于某种原因,我正在使用PHP,我想将会话从使用cookie切换到字符串,那么使用GET变量使用cookie会话的最佳方式是什么?我们是否需要在GET变量中使用会话id?还是别的什么?如果我将在GET中使用会话id为的GET变量,那么如何根据该会话id获取会话?如果有人有想法,请分享 提前感谢。假设您使用的是Apache php_flag session.use_trans_sid = 1 php_value session.use_only_cookies 0 但是也有。假设您使用的是Apa

出于某种原因,我正在使用PHP,我想将会话从使用cookie切换到字符串,那么使用GET变量使用cookie会话的最佳方式是什么?我们是否需要在GET变量中使用会话id?还是别的什么?如果我将在GET中使用会话id为的GET变量,那么如何根据该会话id获取会话?如果有人有想法,请分享


提前感谢。

假设您使用的是Apache

php_flag session.use_trans_sid = 1
php_value session.use_only_cookies 0

但是也有。

假设您使用的是Apache

php_flag session.use_trans_sid = 1
php_value session.use_only_cookies 0


但是也有。

强烈建议不要使用GET变量传递会话ID。假设您的用户登录到您的站点,然后在internet或其他网站上发布指向您站点的链接。现在,任何拥有该链接的人都可以假装以该用户的身份登录。更不用说,它使丑陋的网址。是的,我知道这一点,所以我一定会寻找它的解决方案也。如果你知道一些其他更好的方法,那么请告诉我,但不幸的是,我必须用getI来做。我正在开发一个fb应用程序。IE8(取决于用户的安全设置)正在将站点添加到不受信任和阻止的cookie中,因此我的客户端希望它有会话,然后通过GET进行管理,这就是为什么..只是关于使用GET传递cookie的另一个注释,它会像历史一样存储在浏览器周围的许多地方,并且更容易被窃听。从安全角度来看,这通常是不可取的。如果你坚持这样做,也许值得花些时间来确保cookie更安全。一些想法,如确保它不可转移(包括用户IP作为cookie的一部分)。确保用户可以选择注销。确保一个用户只能有一个并发会话,并且在服务器上有一个短的cookie超时将hlp@Rob谢谢你的评论,罗布,我知道这不好,但当我在一年多前发布这个问题时,我的一个客户要求我这么做。所以我在这里问了这个问题。强烈建议不要使用GET变量来传递会话ID。假设您的用户登录到您的站点,然后在internet或其他网站上发布指向您站点的链接。现在,任何拥有该链接的人都可以假装以该用户的身份登录。更不用说,它使丑陋的网址。是的,我知道这一点,所以我一定会寻找它的解决方案也。如果你知道一些其他更好的方法,那么请告诉我,但不幸的是,我必须用getI来做。我正在开发一个fb应用程序。IE8(取决于用户的安全设置)正在将站点添加到不受信任和阻止的cookie中,因此我的客户端希望它有会话,然后通过GET进行管理,这就是为什么..只是关于使用GET传递cookie的另一个注释,它会像历史一样存储在浏览器周围的许多地方,并且更容易被窃听。从安全角度来看,这通常是不可取的。如果你坚持这样做,也许值得花些时间来确保cookie更安全。一些想法,如确保它不可转移(包括用户IP作为cookie的一部分)。确保用户可以选择注销。确保一个用户只能有一个并发会话,并且在服务器上有一个短的cookie超时将hlp@Rob谢谢你的评论,罗布,我知道这不好,但当我在一年多前发布这个问题时,我的一个客户要求我这么做。所以我在这里问了这个问题。我知道Cookie更好,但是如果我没有选择使用Cookie,那么解决方案是什么?据我所知,如果您执行上述操作,它将默认使用Cookie,如果它们不可用,它将返回到使用$\u GET字符串。无论会话是如何设置的,都可以从$\u会话访问会话。为什么不选择使用cookie呢?我不认为默认情况下任何浏览器都会禁用会话cookie,如果用户手动禁用它们,那么,也没有多少其他站点可以为它们工作。我相信,在httpd.conf、In.htaccess或使用PHP的ini_set()都可以工作。@Hafiz如果您的客户机要求您通过$_GET(querystring)运行会话那么,作为开发人员,您有责任告知他应用程序面临的巨大安全风险。我知道Cookie更好,但如果我没有选择使用Cookie,那么解决方案是什么?据我所知,如果您执行上述操作,它将默认使用Cookie,如果它们不可用,它将退回到使用$\u GET字符串。无论会话是如何设置的,都可以从$\u会话访问会话。为什么不选择使用cookie呢?我不认为默认情况下任何浏览器都会禁用会话cookie,如果用户手动禁用它们,那么,也没有多少其他站点可以为它们工作。我相信,在httpd.conf、In.htaccess或使用PHP的ini_set()都可以工作。@Hafiz如果您的客户机要求您通过$_GET(querystring)运行会话然后,作为开发人员,您有责任告知他应用程序可能面临的巨大安全风险。