1

我遇到了 PHP 会话 cookie 的问题,它只影响使用 McAffee、AVG 和 Norton 等安全软件的 Internet Explorer 用户。IE 和这些安全包的一些(但显然不是全部)用户无法登录或将项目添加到他们的购物篮,因为该软件似乎阻止了 PHP 创建的会话 cookie。

  • 使用标准的 IE、Firefox、Opera 等。会话 cookie 正常工作。
  • 将 IE 安全设​​置更改为最大仍然允许 cookie 通过。
  • Cookie 未加密。
  • 我们没有 PCI 合规性,但我们有最新的 EV SSL 证书。
  • Cookie 由自定义(第三方)会话类创建。
  • 我们已尝试安装软件包,但无法重新创建错误。
  • 我们从电子商务转换中了解到,这仅/主要影响 IE 用户。

会话开始使用session_start(),我们正在为其定义以下设置:

@ini_set('session.use_cookies', 1); 
@ini_set('session.use_trans_sid', 'Off'); 
@ini_set('url_rewriter.tags', ''); 
@ini_set('session.gc_probability', 1); 
@ini_set('session.gc_divisor', 100); 
@ini_set('session.referer_check', ''); 
@ini_set('session.gc_maxlifetime', 604800); 
session_set_cookie_params($this->session_lifespan, '/', null, null, TRUE); 
session_start(); 

会话寿命设置为 21600(六小时)

cookie被阻止的可能原因是什么?这些安全包是否为此而闻名,是否有任何编码解决方法?

4

2 回答 2

0

我相信在从/到 Http/Https 切换时,您需要进行不同的会话。

由于session handler通常使用cookies,而cookies不能在http/https之间共享,切换后会出现session丢失的情况。

于 2011-03-03T18:02:46.930 回答
0

cookie被阻止的可能原因是什么?

愚蠢的人的愚蠢软件?当然,还有其他人认为他们正在通过破坏现有功能为世界提供服务。

但是如果你不能复制这个问题,那么他们可能没有做错任何事。

会话寿命设置为 21600(六小时)

您是否在会话 cookie 上设置了过期时间?确实如此,既然 FF 和 MSIE 都是私有的“私有”浏览功能——我希望这是一个更有可能的候选者。

请确保您在 cookie 上设置了 httponly 标志 - 并尝试设置安全标志(尽管这显然对导航有其他影响)。

于 2011-03-29T15:59:00.537 回答