You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

php.ini配置session.cookie_secure=1后Cookie未加Secure标识如何解决

排查步骤

  • 确认php.ini配置生效:新建phpinfo.php文件写入<?php phpinfo();?>,通过浏览器访问后搜索session.cookie_secure项,确认本地值、主值均为On。如果配置不生效,优先核对phpinfo页面顶部标注的「加载的php.ini文件路径」是否和你修改的文件一致,修改配置后必须重启PHP-FPM或web服务器(Apache/Nginx)才会生效。
  • 排查运行时代码覆盖:检查项目代码中是否存在ini_set('session.cookie_secure', 0)、session_set_cookie_params()等修改session cookie参数的逻辑,运行时配置优先级高于php.ini,会覆盖全局配置。
  • 检查访问协议:Secure标识仅在HTTPS协议下生效,如果你的App部署站点使用HTTP访问,即使配置了session.cookie_secure=1,PHP也不会给Cookie添加Secure标识。如果站点使用了反向代理/CDN,需要确保反代层正确携带HTTPS标识,避免PHP识别当前访问为HTTP协议。

解决方案

  1. 修正php.ini的session cookie配置:
session.cookie_secure = 1
session.cookie_httponly = 1
session.cookie_samesite = "None"

不要将session.cookie_samesite留空,PHP7.4对空值不会输出SameSite属性,Chrome/Edge会默认将跨域场景下无SameSite属性的Cookie判定为SameSite=Lax,同时触发无Secure属性的报错。
2. 确保你的Jira Cloud App部署站点全程使用HTTPS访问,所有页面资源、接口请求都走HTTPS,避免出现混合内容问题。
3. 如果站点需要同时兼容HTTP和HTTPS访问,可以在session启动前通过代码动态配置参数:

if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on') {
    session_set_cookie_params([
        'secure' => true,
        'httponly' => true,
        'samesite' => 'None'
    ]);
}
  1. 配置完成后清空浏览器缓存、删除站点已有Cookie,重新测试即可。

内容的提问来源于stack exchange,提问作者Matti Kiviharju

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 12:48:04