2011-11-24 47 views
1

我有一个PHP站点,其中20%的访问者没有Cookie支持。如何根据Cookie支持提供基于URL和基于COOKIE的会话跟踪?

如何根据Cookie支持提供基于URL和基于Cookie的会话跟踪?

换句话说,如果用户接受cookie,那么我们使用基于cookie的会话跟踪。但是,如果他们不这样做,那么我们切换到基于URL的会话跟踪,以便这些用户仍然可以使用该网站。

我不想失去20%的用户,我不希望网站是基于URL会话跟踪的100%,因为这不仅会造成安全风险,而且还会造成一些我不想要的限制其他80%的用户不得不忍受。

+0

您无视安全风险论点,恶意用户可以自行禁用Cookie。 – TJHeuvel

+0

@TJHeuvel:我具体指的是恶意用户劫持另一用户会话或让合法用户无意中通过电子邮件/即时消息将他们的会话URL发送给朋友的安全风险。 – ProgrammerGirl

回答

1

PHP几乎为你自动完成这项工作。如果不能使用cookie,它会将会话ID附加到所有链接。这应该适用于任何默认的PHP安装。

+0

这并不是我的经验,也许是由于我继承的网站上的特定设置。事实上,这似乎是这样的,session.use_trans_sid的默认值必须是true,但实际上是false。你可以请链接到它说这是默认行为的地方吗? – ProgrammerGirl

+0

哦。你是对的。我的错。 [在这里](http://www.php.net/manual/en/session.configuration.php#ini.session.use-trans-sid)它说默认值是0.我相当确定所有我的PHP安装使用它。我现在很困惑。 –

+0

尝试在主页上设置cookie,然后检查cookie是否在第二页上正确设置,如果不正确,则设置session.use_trans_sid = 1,以便自动将SID附加到URL?会有那样的工作吗?如果是这样,你能否编辑你的解决方案来整合这样的东西,这样我就可以接受它了?谢谢。 – ProgrammerGirl

相关问题