扩展Magento访客会话maxlifetime的缺点?

时间:2012-07-18 16:56:26

标签: php session magento

我们有兴趣延长访问我们Magento网站的访客的会话时间。默认情况下,如果访客将商品添加到购物车并在24分钟后离开页面,会话将被销毁,当他们返回时,购物车将被清零。我通过htaccess将maxlifetime扩展到6个小时来测试它并且它正常工作。我知道我的经理有兴趣让会话保持1周甚至更长时间。我的问题是:长时间保持会话存在的潜在缺点是什么?服务器性能,会话文件的服务器空间,安全问题等?

1 个答案:

答案 0 :(得分:2)

除非您有明确的PCI合规性指令,只保留特定窗口的会话数据,否则不存在任何真正的安全问题。会话数据不包含任何敏感信息。

通过扩展窗口,我能想到的唯一问题就是。

  1. 您为会话/客户提供了更长/更大的机会,使其容易受到现有会话的XSS攻击(不管怎么说都不会这样)。
  2. 你冒着会话目录变得过大的风险 - 导致任何会话清理cron必须迭代越来越多的文件。
  3. 如果你在会话中存储了你不应该做的其他事情(即使它大于默认的4kb);然后你会快速消耗磁盘空间。
  4. 如果您正在使用内存存储进行会话(Memcache / Redis) - 那么您最终将耗尽可用空间并自动截断旧会话。因此,您必须为传统/归档会话存储提交相当大量的RAM。
  5. 如果您正在使用数据库存储进行会话 - 那么您将以糟糕的方式结束。 Magento基于数据库的会话存储是可怕的,并且只是在使用时有一丝瑕疵 - 避免
  6. 如果客户的计算机是共享计算机,则可能存在潜在的安全问题。至少在24分钟(或其他)会话波动的情况下,会话可能已经过期,而另一个用户可以利用它。
  7. 但是有一个更好的解决方案

    您可能想过调查一个更复杂的解决方案,而不仅仅是在网站上延长会话时间,如果购物车已被放弃,您可以通过电子邮件向客户提醒此类消息,并为他们提供一个链接以重新启动购物车内容/心愿单/会议等。

    这显然会为您提供基础解决方案以及您可以主动转换客户的优势 - 而且它所需要的只是捕获电子邮件地址。