php.ini 设置不会使会话安全

php.ini settings do not make sessions to secure

我已经配置了如下所示的 php.ini 设置并使用了 PHP 7.4.

session.cookie_secure = 1
session.cookie_httponly = 1
session.cookie_samesite =

但是这些设置不会将 cookie 的安全标志添加为 true。

我在控制台上看到这个错误:

Cookie “__tld__” will be soon rejected because it has the “SameSite” attribute set to “None” or an invalid value, without the “secure” attribute.

我制作了 Jira Cloud 应用程序,而 Jira Cloud 与我的应用程序位于不同的服务器上。在 Firefox 上一切正常,但在 Chrome 或 Edge 上不行。

做什么?

错误消息显示了对名为 __tld__ 的 cookie 的警告,但您的评论表明您的默认 会话 cookie 名称 PHPSESSID

所以这个 cookie 不是由 PHP's session management functionality 创建的,也不会受到那些设置的影响。 session和cookies不是一回事,没有证据表明这个cookie和session有什么关系。

您需要找到在代码中设置 __tld__ cookie 的位置。如果它在您的 PHP 应用程序中,它可能会通过调用 the setcookie function,它需要额外的选项来指定“HttpOnly”、“SameSite”和“Secure”属性。

Cookie 也可以通过 JavaScript 设置,或通过您包含在页面中的第三方广告和跟踪脚本设置。