Mark Ku's Blog
在 ChatGPT 開啟在 Claude 開啟

GDPR 導致 SameSite Cookie 跨站問題,可透過 Storage Access API 解決,需在 iframe sandbox 加入 allow-storage-access-by-user-activation 並由使用者點擊按鈕觸發。長遠方案是改用 Token Base 驗證機制。

起緣

因為GDPR法規關係,各大瀏覽器會限縮網頁的第三方網站,去寫入Cookie,對使用者進行廣告追蹤, 而我們的產品端常常會被客戶鑲嵌(iframe) 在網站中,因此踩到此限制。

曾經發生的問題

  1. Windwos update IIS 將預設的Cookie 嚴格模式改成Lax (後來產品端透過Url Rewrite 依據不同的user agent 去蓋掉Response Header 設定值)

  2. Safari 在某次更新後對Cookie做了限制,禁止第三方網站寫入Cookie (做完POC後驗證可行性後和產品部門討論,最後採用蘋果的Storeage Access api)

解決方案

短期

1.將網頁導到產品方網站。
2.採用蘋果的Storeage Access api
平台端:iframe sandbox 要加allow-same-origin allow-storage-access-by-user-activation 產品端:在set cookie的頁面需要要加上一個按鈕讓使用者確認按下,執行storage access api。

中長期(產品端)

  1. 採 Token Base 驗證機制 (產品端不再使用Cookie)
  2. 移除Sticky Cookie(需要考量之後log怎麼追)。
  3. 移除Cookie Data。

補充

  1. iOS 13 的 SameSite bug iphone 13以前的版本有bug,SameSite設定值只要有值就會視同為Lax 不能給SameSite=none,因此要給SameSite=""
  2. Storage access api 支援度 新edge及Chrome 己支援Storage access api,並在BETA中,不排除未來有更多的瀏覽器也會跟進。

作者

Mark Ku

10 年以上的軟體工程師,做過北美電商與 AI SaaS 訂閱收費系統。現在經營貳陸資訊有限公司(www.226network.com),幫小公司做系統、網站、LINE BOT 與 AI 自動化,也在這裡分享開發筆記與開源工具。閱讀更多

覺得這篇有幫助?

作者做的免費工具、每日 Podcast 與電子報,都在這裡。

Mark Ku · 本文採用 CC BY 4.0 授權,轉載請註明作者並附上原文連結。

留言

訂閱電子報

訂閱後即時收到新文章通知,不錯過任何技術分享。

提交即表示同意接收電子報,隨時可

熱門文章

View all
Mark Ku
··655

Oracle Cloud 永久免費方案 Linux 主機及固定 IP :0 元打造雲端解決方案

Oracle Cloud 永久免費方案 Linux 主機及固定 IP :0 元打造雲端解決方案
Mark Ku
··574

告別 Postman 收費陷阱!開源 Git 原生 API 測試神器 Bruno 實戰指南

告別 Postman 收費陷阱!開源 Git 原生 API 測試神器 Bruno 實戰指南
Mark Ku
··318

一款免費開源類似於 Notion 類知識庫系統 — Outline Wiki 佈署與備份全攻略

一款免費開源類似於 Notion 類知識庫系統 — Outline Wiki 佈署與備份全攻略
Mark Ku
··234

訓練自己的 AI 語音:硬體門檻、開源模型比較與 LoRA 微調

訓練自己的 AI 語音:硬體門檻、開源模型比較與 LoRA 微調
Mark Ku
··231

在 Ubuntu 上設置 Samba 來共享資料夾,讓 Windows 11 用戶可以存取

在 Ubuntu 上設置 Samba 來共享資料夾,讓 Windows 11 用戶可以存取
Mark Ku
··225

打造高效 API 管理平台:從 0 開始部署 Kong Gateway - Part 1

打造高效 API 管理平台:從 0 開始部署 Kong Gateway - Part 1
SameSite Issue - Mark Ku's Blog