【问题标题】:Again a problem with the sessions会话再次出现问题
【发布时间】:2011-09-14 09:23:12
【问题描述】:

我已经问过similar question,但是我在 CakePHP 中的会话又遇到了问题。

问题是:当有人收到一封包含链接的电子邮件并单击此链接时,会话就会终止。

  • 如果用户在单击电子邮件链接后登录网站,他的会话将终止。

  • 如果用户登录网站并复制电子邮件的链接而不是点击它,那么一切正常。

我想我需要一些神奇的解决方案来最终一劳永逸地解决这个问题。

【问题讨论】:

    标签: php session cakephp


    【解决方案1】:

    如果用户在点击信件的链接后登录网站,他的会话就会终止

    这可能是因为单击该链接会导致用户使用的任何浏览器启动一个新的浏览器实例。处理方式因浏览器而异。

    我会保持这种行为不变。解决此问题将非常复杂,并且可能会在此过程中引发安全问题。

    【讨论】:

    • 我希望保持原样,但是客户.. (:
    【解决方案2】:

    config/core.php 中的“high”是否有 Security.level?如果是这样,请尝试使用“中”或“低”。

    另外,请检查电子邮件客户端打开的浏览器是否与启动会话的浏览器不同。

    【讨论】:

    • 但它只影响超时
    • 它也会影响a few other things。可能值得检查一下降低安全性是否有帮助。
    • 好的,但我没有把它改成“hight”,现在默认设置为“medium”
    • 你也试过“低”吗?这就是另一个问题中的 OP 对 Hotmail/Yahoo 所做的。
    【解决方案3】:

    当 CakePHP 的“Security.level”设置为“high”或“medium”时,CakePHP 会将 PHP session.referer_check 设置为您的站点主机名。

    但是,当用户单击电子邮件客户端内的链接时,引用者检查测试失败并且会话被标记为无效。

    你需要做的是:

    1) 将 CakePHP 'Security.level' 设置为 'low'

    2) 为CakePHP提供自定义会话配置,如图here,将'session.referer_check'设置为空字符串,这样:

    ini_set('session.referer_check', '');
    

    【讨论】:

    • 复制和粘贴您的答案被认为是不好的。我看到你在这里给出了相同的答案:stackoverflow.com/questions/7201576/…
    • 是的,我试图帮助每个人。我应该使用链接。从现在开始我会这样做。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2015-03-18
    • 1970-01-01
    • 1970-01-01
    • 2022-08-03
    • 1970-01-01
    • 1970-01-01
    • 2011-01-16
    • 1970-01-01
    相关资源
    最近更新 更多