2011-09-01 99 views
1

我正在为我的网站使用Rails 3。我有我的网站用户阻止我的网站在浏览器中存储cookie数据的情况。如果在浏览器中禁用cookie,则存储数据

我有我的网站公共部分,用户无需登录即可访问它。在那里,我需要暂时在session []中存储一些信息,直到接下来的几个请求。

由于用户为我的网站禁用了Cookie,我选择了:active_record_store作为:session_store。即使这样做之后,我无法从会话[]

Cart::Application.config.session_store :active_record_store, :key => '_cart_session', :domain => :all 

我能做些什么来存储这些案件开庭[]值成功存储和检索值。请帮忙。

回答

2

如果cookie被禁用,则不能使用会话,因为会话ID是使用cookie传输的。

您可能尝试以其他方式传输会话ID - 例如,在PHP中,每个表单和链接都会附加一个参数:PHPSESSIONID。您可以使用相同的技术,让您的链接看起来像这样的:

<a href="https://stackoverflow.com/users/1?session_id=12345"> 

Rails的will not allow you to use sessions without cookies,但我相信,写它自己不会太辛苦。请务必考虑会话ID泄露的安全影响!

如果你有兴趣在处理会议的PHP的方式,您可能希望看到PHP session documentation和两个问题:How do PHP sessions work when cookies are disabled?do sessions work when cookies are disabled?

0

可以

  1. 为每个用户创建独特代码,修改各个环节,形成将其列入。

  2. 商店用户数据在您的数据库以及个性化的唯一代码。

  3. 当用户请求带有该唯一代码时,应用个性化。

您无法为每个IP地址分配唯一的代码,因为许多用户使用相同的IP地址,或者他们的IP地址可能会频繁更改。

相关问题