【问题标题】:Why does my Wordpress website set a PHPSESSID cookie?为什么我的 Wordpress 网站设置了 PHPSESSID cookie?
【发布时间】:2018-11-15 08:13:18
【问题描述】:

我目前正在努力应对 GDPR 以及它要求我将其应用于我的网站的所有更改。我的一个 Wordpress 网站使用了我自己制作的主题,设置了一个名为 PHPSESSID 的 cookie,该 cookie 存储会话 ID - 不是由任何特定操作触发的,只是在打开网站的任何页面时触发。

奇怪的是:

1.) 我的主题代码中肯定没有任何东西可以做到这一点。

2.) 我有这个网站的两个相同版本,一个用于在我自己的网络空间和域上进行测试,另一个用于客户域和网络空间。提供者在这两种情况下都是相同的,所以我想它是相同的服务器配置。 PHP版本相同(7.2)。我在两个版本中都有相同的主题和插件,性能站点仍然设置了该 cookie,测试站点没有。

现在,我真正想要的是摆脱那个 cookie。我没有在该网站上使用任何其他 cookie,并且我不想在该网站上放置 cookie 通知。

有没有人知道该 cookie 的来源以及如何让服务器/网站不设置它?

【问题讨论】:

  • WP 没有开箱即用地设置会话,所以这要么来自插件,要么来自服务器本身,如果您的主机自动设置会话,我会感到惊讶。
  • 好吧,正如我所写:我有两个版本的网站,使用完全相同的主题和插件,一个设置它,一个不设置,这也是我感到困惑的地方
  • 如果您打开一个新的浏览器会话(以前的 cookie 被丢弃),cookie 会重新创建吗? (尝试浏览器的隐身模式。)
  • 您的 cookie 出现在生产版本上,而不是测试/开发站点上?
  • @Progrock 是的,cookie 也是在删除 cookie 并以隐身模式连接后设置的,也可以在其他浏览器上设置。是的,它出现在生产版本而不是文本版本中,尽管两个域/网络空间都有相同的托管服务提供商

标签: php wordpress cookies session-cookies


【解决方案1】:

这是会话。 如果您在脚本的最顶部使用 session_start() 来使用会话。 您可以在 php.ini 中找到此名称(PHPSESSIONID)作为选项值,以下部分来自我的(IIS 上的 php)

; Name of the session (used as cookie name).
; http://php.net/session.name
session.name = PHPSESSID

我怀疑(没有尝试)您有一个 cookie,因为还有其他选项集

; Whether to use cookies.
; http://php.net/session.use-cookies
session.use_cookies = 1

您可以在此处阅读有关会话和会话 cookie 的更多信息http://php.net/manual/en/session.configuration.php#ini.session.use-cookies

【讨论】:

  • 您好,感谢您的回答!我知道session_start(),但我没有在任何地方使用它(这是我自己的主题,没有任何来自模板或类似的东西,保持相当简单)。我将不得不检查您提到的 php.ini 设置,尽管我无法更改它们(它在共享的网络空间上)。
  • 这个指令被标记为 PHP_INI_ALL 这意味着你可以用 in_set 函数来设置它。在脚本的最顶部尝试 ini_set ("session.use_cookies", "0"),最好是在其他所有内容之前。我对word press不太了解,但是从某个地方你得到那个会话,是否有可能来自需要登录并且应该有会话的管理面板?什么是 cookie 值?在发布存储在那里的敏感内容之前检查
  • 嗯 - 我将ini_set ( "session.use_cookies", "0"); 放在页面顶部,但我在页面顶部收到警告说Warning: ini_set(): A session is active. You cannot change the session module's ini settings at this time in /home/.sites/.../indexphp on line 2。我没有登录到 Wordpress 后端或该网站上的任何其他内容。该 cookie 的值是一个抽象的字符序列,大约 30 个字符长。在 Firefox 检查器中,在 cookie 信息中我还得到了 `HostOnly: true"
  • 嗯,我认为这与 WordPress 某处包含某些内容有关,看不到您正在工作的脚本可能包含在另一个更大的脚本中,所有内容都应该开始和结束index.php 或类似的页面。但我不能帮助你更多我不知道wordpress是如何工作的,我可以很高兴地尝试检查一些文件,但为了给你一个合乎逻辑的答案,我应该看看整个项目.....
  • 感谢您的报价!这实际上位于页面的顶部(index.php,其中包括 header.php、footer.php 和 sidebar.php,但我将该行插入到 php 文件包含的所有其他内容之上)。似乎 Wordpress 连接到服务器的方式甚至在页面本身加载之前就开始了会话。我只是想知道为什么它也不会发生在我的测试站点上,它位于同一提供商处...
【解决方案2】:

致所有感兴趣的人:我发现这是由于插件。我对该插件有两个略有不同的版本/更新,一个设置 PHPSESSID cookie(显然在加载任何 php 页面之前),另一个没有。

对不起,我之前应该检查过(我是通过一一停用所有插件才发现的)。但是我的问题现在已经解决了 - 感谢所有回复的人!

【讨论】:

    【解决方案3】:

    对于可能遇到此问题的人,对我来说,我很确定它也是一个插件:https://wordpress.org/plugins/wp-super-cache/

    但我不认为这实际上是插件本身的错。禁用它,然后重新启用它,然后确保它的设置启用缓存,似乎“清除”了仅限 HTTP 的 cookie。基本上我认为该插件已设置为可以工作,但没有被使用,所以旧的仅 HTTP 图像被缓存 - 即使我一直链接到 HTTPS 图像。无论如何,以防万一它可能会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      相关资源
      最近更新 更多