16

我正在尝试在我的网站上使用 javascript 设置 SameSite 属性。代码是

<script type="text/javascript">

    document.cookie = "AC-C=ac-c;expires=Fri, 31 Dec 9999 23:59:59 GMT;path=/;HttpOnly;SameSite=Lax";
  </script>

正在设置 cookie,但未设置 SameSite 属性。知道我在哪里失踪吗?

谢谢

4

2 回答 2

16

您的问题不在于SameSite,而在于HttpOnlyHttpOnly并且SameSite是 2 个独立的东西,如果您将其删除HttpOnly,它将起作用……并且 cookie 将设置为SameSite.

<script>
    document.cookie = "AC-C=ac-c;expires=Fri, 31 Dec 9999 23:59:59 GMT;path=/;SameSite=Lax";
    alert( document.cookie );
</script>
于 2019-06-09T10:50:38.367 回答
9

您不能通过 JavaScript API document.cookie 设置 HttpOnly 标志。标志HttpOnly只能通过服务器响应中的 cookie 标头设置。请参阅https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies Cookies created via JavaScript cannot include the HttpOnly flag.

你写了The cookie is being set but the SameSite attribute is not being set,但我认为这不是事实。通过具有 HttpOnly 属性的 JS 设置的 Cookie 完全被拒绝,或者某些浏览器设置它但忽略 HttpOnly 标志 - 所以最后你的 cookie 不仅仅是 HTTP。

于 2019-11-12T09:59:10.087 回答