Safari隐私模式下HTTP自动跳转HTTPS失效问题咨询
跨站跟踪阻止功能干扰
Safari隐私浏览默认开启的「阻止跨站跟踪」,可能会误将HTTP到HTTPS的同源协议跳转判定为跨站行为——尤其是跳转逻辑依赖第三方资源或客户端存储时。常规窗口和Chrome/Edge隐私模式的拦截规则更宽松,不会触发这类阻断。测试方法:在隐私窗口点击地址栏左侧隐私图标,关闭「阻止跨站跟踪」后重试跳转。HSTS缓存未在隐私沙盒生效
常规窗口会缓存HSTS(HTTP严格传输安全)设置,访问过HTTPS版本后会自动触发HTTP跳转。但Safari隐私窗口是独立沙盒,不共享常规窗口的HSTS缓存。如果你的站点HSTS头的max-age设置过短,或隐私窗口从未加载过HTTPS版本,就不会触发自动跳转。解决方案:确保服务器返回的HSTS头包含足够长的有效期和子域名覆盖,示例:Strict-Transport-Security: max-age=31536000; includeSubDomains服务器端重定向依赖客户端存储失效
若跳转基于服务器301/302重定向,但逻辑依赖Cookie、LocalStorage等客户端存储,Safari隐私窗口会禁止非必要存储写入,导致跳转触发失败。需调整跳转逻辑,完全基于服务器端协议判断,不依赖任何客户端存储。智能防跟踪误判可疑跳转
新版Safari的智能防跟踪可能将某些跳转识别为可疑行为,比如HTTP与HTTPS指向的IP存在差异(即便你确认站点无HTTPS链接,也可能存在域名解析疏漏)。建议检查服务器配置,确保HTTP与HTTPS指向同一服务器,重定向响应头明确指定完整HTTPS目标地址,避免使用相对路径跳转。
内容的提问来源于stack exchange,提问作者Ondřej Michejda

