Cookie
Cookie - 維基百科,自由的百科全書
HTTP Cookie
2024-01-31 SameSite属性とCSRFとHSTS - Cookieの基礎知識からブラウザごとのエッジケースまでおさらいする - Flatt Security Blog
HTTP Cookie の使用 - HTTP | MDN
使用 HTTP Cookie - HTTP | MDN
由伺服器回應的Set-Cookie標頭將值存在瀏覽器
Set-Cookie: <cookie-name>=<cookie-value>
瀏覽器則以Cookie請求傳送
Cookie的屬性
Secure
只在https連線時傳送Cookie
避免中間人攻擊
HttpOnly
無法透過JavaScript的document.cookie操作含有此屬性的Cookie
避免XSS攻擊
Domain
瀏覽器會將含有此屬性的Cookie傳送給指定以下的網域
包含子網域
若無,則只有設定時的網域會傳送
不含子網域
Path
瀏覽器會將含有此屬性的Cookie傳送給指定以下的目錄
包含子目錄
SameSite
控制網站之間的通訊
Strict
Lax
None
Cookie Prefixes
2024-05-02 Demystifying cookies and tokens – Tommi Hovi | The Security blog
https://www.youtube.com/watch?v=HFyaW50GFOs
2020-02-03
Vox
第三方Cookie
Facebook Pixel
https://www.youtube.com/watch?v=QOb1SWOvbu4
2024-11-03
ゆるコンピュータ科学ラジオ
資訊安全
https://www.youtube.com/watch?v=T1QEs3mdJoc
Computerphile
2026-04-06 個人開発でシステムを作る場合の注意点その1(HTTP、クッキー、パスワードの管理、XSS、HttpOnle属性、API権限) -Higtyの開発日記-
HTTP請求
(於伺服器端視角)是無狀態的
可以透過工具自由更改
Cookie
記憶使用者狀態用
防止工具更改,因此會先於伺服器端加密,並在每次傳輸中由伺服器端解密
Session ID
對伺服器負擔較高
JWT
目前的主流形式
XSS
對策:消毒所有來自使用者的輸入
但若是執行意料之外的API請求時也無法防範
即使有做Cookie HttpOnly或CSRF防範亦同
2022-08-09 【PoC編】XSSへの耐性においてブラウザのメモリ空間方式はLocal Storage方式より安全か? - Flatt Security Blog
table:儲存access token處
記憶體 Cookie LocalStorage SessionStorage
容量 1GB 4KB 10MB 5MB
壽命 關閉分頁 可設定 無期限 關閉分頁
傳輸 不傳輸 傳給伺服器 不傳輸 不傳輸
CSRF風險 無 有 無 有
從JS存取 困難 不可(http-only) 可 可
但即使是儲存在記憶體,也有可能受到XSS攻擊
https://www.youtube.com/watch?v=4JREwhSC2dQ
徳丸浩
Cookie的有效期限
分為Access Token與Refresh Token,減低使用者影響,並縮減Token遭盜用時的被害
於重要頁面再次要求驗證
2026-04-06 個人開発でシステムを作る場合の注意点その2(CSP、HSTS、CORS、CSRF) -Higtyの開発日記-
The Internet's Biggest Annoyance:Why Cookie Laws Should Target Browsers, Not Websites | NEDNEX
歷史
2026-05-27 「JWT を localStorage に置くな」はなぜ言われるのか、Cookie 回帰までの時系列整理
2010年前半(Cookie時代)
前端只透過jQuery進行簡單處理、大多請求都是同源,以Cookie工作階段為主
跨域處理依瀏覽器實作不同,例如XMLHttpRequest.withCredentials,但主要使用
JSONP、Reverse Proxy、iframe+postMessage、置於同源
2010年後半(LocalStorage時代)
SPA興起,前端與後端分離開來、規範第三方Cookie
以及微服務、無狀態架構、Twelve-Factor等設計的出現,主要選項變為JWT
但如金融、企業、公家機關,以及其他語言環境仍然沿用工作階段
搭配localStorage的使用也因為資安問題,必須採用新的選擇
2020年(BFF時代)
全端框架,專門隔離權杖的BFF出現
[瀏覽器] --(Cookie)--> [BFF] --(JWT/Bearer)--> [API伺服器]
和瀏覽器間使用HttpOnly Cookie進行工作階段ID互動
和API伺服器間使用JWT/Bearer權杖溝通
但只能防止權杖直接被JS竊盜,仍然需要防範XSS與CSRF攻擊
BFF的好處是,至少能將風險轉移到瀏覽器之外
2020年後半(回歸Cookie)
OAuth2、React Server Components也強化了回歸Cookie的設計
JWT並不是消失,而是不再放置於瀏覽器上,因此並不是真的回到2005年
即只是形式上同樣有一個不透明的HttpOnly Cookie,但伺服器端已完全不同