0
我有我的会话变量正在通过这种保存到所有子域上我的网站:有没有办法指定cookie应保存到的子域? (而不是一个或全部)
Site::Application.config.session_store(
:cookie_store,
:key => '_site_session',
:domain => Settings.domain,
# :secure => (Rails.env.production? || Rails.env.staging?),
:http_only => true)
其中Settings.domain =“.site.com”
然而,我的网站设置的方式,每个帐户都有自己的子域名。所以这导致了一个很大的错误,因为当有人登录时,他们可以进入任何其他子域,并有权访问该帐户(并非所有的信息,但一些...)。
所以,我想要做的是让人们与公共子域(signin.site.com和signup.site.com)以及他们自己的个人子域(account1.site.com)共享会话变量。但是,这些是唯一应该能够分享的人。有没有一种方法来指定?
site.com已被用于我的营销页面......但我想我可以尝试将它放在site.com/login。然而,那么会话将不会从site.com持续到account1.site.com,因为它是一个不同的子域,这就是我所需要的。我正在考虑在application_controller中创建一个before_filter来基本检查current_account.subdomain == request.subdomain ...但不会有人能够更改他们的current_account信息来解决这个问题吗? – 2012-02-29 18:22:46
该cookie也被提供给account1.site.com以及它已被设置为.site.com。确保您没有使用www.site.com。 – iltempo 2012-02-29 18:26:22
对不起,我很困惑这个评论...你是什么意思?我创建了一个before_filter来检查用户是否在正确的帐户上,是否有任何方式来操纵会话cookie(我相信加密)尝试访问其他人的帐户? – 2012-02-29 18:34:37