【发布时间】:2019-02-20 19:21:35
【问题描述】:
我不知道为什么会发生这种情况或如何解决它。
我可以运行这个:
setcookie('cookie_name', 1, time()+86400*365*2, "/", ".domain.com", false, false);
当我加载脚本时,我在响应头中得到了这个:
cookie_name=1; expires=Fri, 19-Feb-2021 19:08:57 GMT; Max-Age=63072000; path=/; domain=.domain.com;HttpOnly;Secure
如您所见,即使我明确告诉它不要使用这些标志,它也会强制使用 httponly 和安全标志。
为什么会发生这种情况,我该如何解决?
这是 PHP 7.1
如果这很重要,则通过 https 访问该网站。
编辑: 我们在 .htaccess 文件中使用 Strict-Transport-Security 标头。我尝试将其注释掉,但似乎没有任何效果。
编辑2: 我可以通过在 javascript 中设置 cookie 来解决这个问题。这使我无法阅读我需要的 cookie javascript。这个域在 HSTS 预加载列表中,所以我感觉 chrome 正在添加这个标志,因为它知道这个域是安全的。我不确定为什么它允许 javascript 将它们设置为未修改。
如果set-cookie 标头上有任何关于 HSTS 预加载及其影响的信息,是否有人知道?
【问题讨论】:
-
您想对 HSTS 网站上的不安全 cookie 做什么?至少在第一次访问之后,这基本上是一个矛盾。
-
因为我需要检查 javascript 中的 cookie,如果 cookie 仅是 HTTP,则您无法读取脚本语言中的 cookie。它与安全无关,它只是用户先前执行过一项功能的指标。我认为它可以以不同的方式处理,但这真的没关系,不值得付出额外的努力。我宁愿知道这是如何工作的或问题是什么。
-
是的,我理解“仅 HTTP”标志;这是困扰我的“安全”。无论如何,您是否尝试过更改
session.cookie_httponly配置选项?出于某种原因,也许它优先。
标签: php google-chrome cookies httponly hsts