即使指定了 samesite=none,瀏覽器也會使用 samesite=lax

優素福·伊佩克

我正在嘗試通過 iframe 將我的 angular 應用程序嵌入到另一個站點。在我的 angular 應用程序中,我正在設置 cookie,因此當我嘗試將 angular 應用程序嵌入到我的其他站點時,Devtools 顯示一個問題,告訴我未設置 samesite=none,因此正在使用默認的 samesite=lax,這可以防止 angular 應用程序設置 cookie。

之後,我嘗試在響應標題中設置條目“set-cookie: samesite=none;secure”,但它不起作用。正如您在下面的屏幕截圖中看到的,瀏覽器仍然使用“same-site=lax”。

此問題發生在 Chrome 和 Edge(Chromium) 上,但不在 Firefox 中。

問題:

  • 我想知道我是否錯誤地使用了同站點設置?
  • 儘管我使用了“samesite=none;secure”,但為什麼瀏覽器會向我顯示此消息?

截圖

在此處輸入圖片說明

jub0bs

問題

您誤解了Set-Cookie的語法,並且錯誤地省略了 cookie 的名稱和值。查看有關該主題的 MDN 頁面

cookie 定義以名稱-值對開始。

因此,當瀏覽器收到帶有以下標頭的響應時,

set-cookie: samesite=none; secure

它創建(或更新)一個Securecookie的,其名稱samesite,其價值none因為SameSite 屬性沒有指定,因為鉻現在默認LaxSameSite屬性,所產生的cookie被有效地標記SameSite=Lax您的瀏覽器。

解決方案

要解決此問題,您必須為 cookie 選擇名稱和值,並且必須在任何其他 cookie 屬性之前指定 cookie 的名稱和值:

Set-Cookie: <cookie-name>=<cookie-value>; SameSite=None; Secure

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

仅使用SameSite Lax cookie进行SSO的可行性?

SameSite =“ Lax”和SameSite =“ Strict”有什么区别?

Chrome扩展程序不发送SameSite = Lax Cookie

Rails会话,如何将SameSite设置为Lax

当SameSite =不安全时,Internet Explorer / Edge(非铬)添加其他SameSite = Lax

在哪里添加`SameSite = None`?

从Gmail iOS应用程序打开链接时,为什么不能阅读SameSite Lax cookie的内容?

如何避免“ Lax + POST”临时干预的SameSite 2分钟窗口?

此 set-cookie 被阻止,因为它具有 samesite=lax

“ SameSite = none”不适用于iframe

Identity Server SameSite=None 无法登录

如何在Cookie上指定SameSite和安全(使用axios / React / Node Express)

如何告诉PHP对跨站点Cookie使用SameSite = None?

SameSite警告Chrome 77

如何设置SameSite属性?

PHP setcookie“ SameSite = Strict”?

SameSite Cookie IIS

针对CSRF的SameSite标志

如何在 JSESSIONID Cookie 中设置 SameSite=None

在Azure Web App中未设置SameSite None cookie属性

在ASP.NET中设置SameSite = None和安全

iOS 12浏览器中的Samesite问题

即使在设置sameSite:'none'和secure:对于MERN Stack Web应用程序为true后,Cookie也不会保存在chrome中

SameSite属性和Facebook SDK

symfony 5 samesite =无Firefox

最新的Chrome 85使用SameSite = None并安全删除第三者Cookie

使用SameSite和Secure属性设置Google跟踪代码管理器Cookie

PHP:为Cookie属性SameSite = None设置标头; Secure根本不起作用

如何为4.7.2(对于4.5.2)的.Net Framework设置cookie属性Samesite = None