首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在PHP中从HTTP切换到HTTPS时会话丢失

在PHP中从HTTP切换到HTTPS时会话丢失
EN

Stack Overflow用户
提问于 2009-01-14 00:47:07
回答 12查看 70.5K关注 0票数 64

当将用户发送到结帐页面时,他们将从http://sitename.com切换到https://sitename.com

因此,$_SESSION变量会丢失。

该站点具有有效的SSL证书,该证书可能有一些用处,也可能没有用处。

EN

回答 12

Stack Overflow用户

发布于 2009-01-14 03:15:19

听起来会话cookie被设置为安全的。cookie有一个"secure"标志,如果设置为true,意味着cookie不会被发送到非https站点。PHP可能正在使用它的会话cookie。您可以使用session_set_cookie_params函数或使用php.ini中的session.cookie_secure设置来更改此设置。

票数 16
EN

Stack Overflow用户

发布于 2010-07-17 04:17:43

我们也遇到了这个问题。事实证明,这是因为我们在安装PHP时使用了suhosin补丁。我们通过在/etc/php.d/suhosin.ini中设置suhosin.session.cryptdocroot = Off来修复它。

有关suhosin.session.cryptdocroot的suhosin手册,请参阅http://www.hardened-php.net/suhosin/configuration.html#suhosin.session.cryptdocroot

我们最初从这篇博文中找到了修复:http://www.yireo.com/blog/general-news/315-switch-between-http-and-https-looses-php-session

票数 12
EN

Stack Overflow用户

发布于 2011-11-16 04:43:56

以下解决方案假设安全服务器和非安全服务器可以访问相同的后端服务(缓存、数据库存储等)。

当用户完成购物时,我们必须处理相同的问题,将用户发送到我们的结帐流程。为了解决这个问题,我们放置了一个缓存层,并缓存了所有相关数据。例如,我们将从会话值中收集产品id和用户id,序列化它们,创建散列,最后使用散列作为键将会话数据存储在缓存中。然后,我们会使用url中的散列将用户重定向到安全站点。

当用户最终到达安全站点时,我们会尝试根据散列将数据从缓存中拉出。然后,使用用户id和产品id,我们可以从数据库中加载所有定价和描述数据,并呈现给用户以供最终结帐审查。

有一个继承风险,因为缓存数据是不稳定的,但我们从来没有遇到过任何问题,因为重定向发生得很快。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/441496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档