Set-Cookie 解析器
Set-Cookie Parser
貼上多行 Set-Cookie 回應標頭以檢查屬性,並標記有風險的 SameSite / Secure 組合。
Cookie 屬性卡片
setCookieParser.attr.maxAgeHint
JSON 預覽
[
{
"index": 0,
"raw": "session=abc123; Path=/; HttpOnly; Secure; SameSite=Lax",
"name": "session",
"value": "abc123",
"decodedValue": "abc123",
"attributes": [
{
"key": "path",
"value": "/"
},
{
"key": "httponly",
"value": null
},
{
"key": "secure",
"value": null
},
{
"key": "samesite",
"value": "Lax"
}
],
"attributeMap": {
"path": "/",
"httponly": true,
"secure": true,
"samesite": "Lax"
},
"warnings": []
},
{
"index": 1,
"raw": "preview=1; Max-Age=600; SameSite=None; Secure",
"name": "preview",
"value": "1",
"decodedValue": "1",
"attributes": [
{
"key": "max-age",
"value": "600"
},
{
"key": "samesite",
"value": "None"
},
{
"key": "secure",
"value": null
}
],
"attributeMap": {
"max-age": "600",
"samesite": "None",
"secure": true
},
"warnings": [
"warn.missingHttpOnly",
"warn.missingPath"
]
}
]瀏覽器為什麼不收 Cookie,往往不是值錯了,而是 Set-Cookie 屬性錯了。
相關推薦
什麼是 Set-Cookie 解析器?
Set-Cookie 解析器是專門面向 HTTP 回應標頭裡 `Set-Cookie` 內容的除錯工具。它的目標不是簡單把一行文字按分號拆開,而是幫助開發者判斷:服務端這條 Cookie 配置對不對、瀏覽器為什麼沒收下、哪些屬性組合存在安全或相容性風險、以及目前 Set-Cookie 是否適合跨站、SSO、iframe、第三方 Cookie 或會話場景。
和請求標頭裡的 Cookie 不同,Set-Cookie 是伺服器「發給瀏覽器的配置指令」。它不僅包含 `name=value`,還會攜帶 SameSite、Secure、HttpOnly、Path、Domain、Expires、Max-Age、Partitioned 等屬性,這些欄位直接決定瀏覽器是否寫入、何時失效、在哪些路徑和網域下生效,以及能否在跨站請求中傳送。因此,很多「登入態遺失」「瀏覽器不帶 Cookie」「跨域場景無效」的根因,其實不在值本身,而在 Set-Cookie 的屬性配置上。
目前頁面的價值就在於把這些屬性從原始回應標頭裡結構化拆出來,再結合瀏覽器真實規則做靜態檢查。例如 SameSite=None 是否缺少 Secure、Partitioned 是否搭配 Secure、__Host- 前綴是否錯誤設定了 Domain、Max-Age 是否無效或等於 0、Expires 是否缺少 Max-Age 等。這些問題瀏覽器通常不會像語法錯誤那樣直接彈提示,而是靜默拒絕或表現為「就是不生效」,因此工具化檢查非常重要。
如果你只想知道請求裡目前帶了哪些 Cookie,不該停留在這個頁面,而應該去看更適合拆解請求標頭的「HTTP Cookie 解析器」。目前頁面更適合「瀏覽器為什麼沒寫入」「服務端這條 Cookie 配置有沒有隱患」「跨站和安全屬性組合是否合理」這類回應標頭排查場景。
適用場景
- 瀏覽器拒絕寫入 Cookie 時,快速定位是 SameSite、Secure、HttpOnly 還是 Path / Domain 配置問題
- 第三方登入、SSO、iframe 嵌入或跨站請求場景下,檢查 SameSite=None 是否正確搭配 Secure
- 安全審計時批次檢查介面返回的 Cookie 是否缺 HttpOnly、缺 SameSite 或存在高風險屬性組合
- 驗證 __Host- / __Secure- 前綴 Cookie 是否滿足瀏覽器強約束,避免被靜默丟棄
- 除錯 Partitioned Cookie / CHIPS 三方分區方案時,確認 Partitioned 與 Secure 是否同時宣告
- 對比開發、測試、生產環境的 Set-Cookie 回應標頭差異,排查環境切換後登入態異常
使用方法
- 從瀏覽器 DevTools、抓包工具或服務端日誌裡複製 Set-Cookie 回應標頭內容(支援多行)
- 貼上到輸入區,工具會自動剝離 `Set-Cookie:` 前綴並逐行解析
- 查看每條 Cookie 的名稱、值、URL 解碼值、屬性卡片和告警標籤
- 複製原始標頭或查看 JSON 預覽,把結果繼續發給後端、貼到 Issue 或寫入測試指令碼
功能特點
- 多條 Set-Cookie 獨立解析:每行單獨成卡片,逐條查看名稱、原始值、URL 解碼值和屬性
- 14 類常見問題自動檢查:覆蓋 SameSite、Secure、HttpOnly、Path、Domain、Max-Age、Expires、__Host- / __Secure- 前綴與 Partitioned 等高頻風險
- 完整屬性拆解:按 SameSite、Secure、HttpOnly、Path、Domain、Expires、Max-Age、Partitioned 等欄位結構化展示
- Max-Age 人類可讀換算:秒數自動轉為分鐘、小時、天,減少手動換算成本
- 多行批次輸入:可直接貼上 DevTools 或抓包工具裡複製出的整段 Set-Cookie 回應標頭
- 原始標頭複製與 JSON 預覽:既方便回傳給後端,也方便寫文件、Issue、指令碼和測試案例
- 本機零上傳:敏感 Session、Token 和登入態 Cookie 在瀏覽器內解析,不離開本機
什麼時候用 Set-Cookie 解析器,什麼時候用另外兩個頁面?
看清「服務端設定了什麼」和「請求裡實際帶了什麼」是兩件事,別混著查。
| 工具 | 適合輸入 | 最適合場景 | 核心優勢 |
|---|---|---|---|
| Set-Cookie 解析器(目前頁) | Set-Cookie 回應標頭 | 排查瀏覽器為什麼不收 Cookie、為什麼跨站不生效、為什麼安全屬性配置有風險 | 屬性拆解完整,並自動做 14 類高頻配置檢查 |
| HTTP Cookie 解析器 | Cookie 請求標頭、document.cookie | 確認請求裡實際帶了哪些 Cookie、值是否被 URL 編碼、是否有重複名稱 | 更聚焦請求標頭名值對拆解和標準化輸出開啟 HTTP Cookie 解析器 |
| Cookie 解析器 | Cookie 字串與 Set-Cookie 混合排查場景 | 還不確定手裡資料來源,或想在一個頁面中快速切換 Cookie / Set-Cookie 兩種模式 | 更像 Cookie 除錯總入口,並支援 Netscape Cookie File 匯出開啟 Cookie 解析器 |
最佳实践
先判斷問題出在「設定失敗」還是「請求沒帶上」
如果瀏覽器根本沒寫入 Cookie,優先看目前頁;如果瀏覽器已經寫入,但後續請求裡沒帶上,就要結合 HTTP Cookie 解析器一起看。Set-Cookie 和 Cookie 請求標頭是兩個不同階段。
跨站場景先看 SameSite=None 和 Secure 的組合
SSO、第三方登入、iframe 嵌入、跨域請求最常見的坑,就是 SameSite=None 卻沒配 Secure。先把這組問題排乾淨,再去看服務端邏輯和瀏覽器策略。
__Host- / __Secure- 前綴不要只看名字,要看約束是否完整
很多團隊以為給 Cookie 名字加上 `__Host-` 或 `__Secure-` 就已經更安全了,但如果 Secure、Path=/、Domain 等配套條件沒滿足,瀏覽器仍然會拒絕寫入。
寫文件和重現 Issue 時優先保留原始標頭和 JSON 兩份材料
原始標頭適合給後端和運維核對真實返回值;JSON 適合貼到 Issue、測試案例和指令碼裡繼續處理。兩份一起保留,比只截一張 DevTools 圖更利於重現和協作。
常見問題
Set-Cookie 解析器和 Cookie 請求標頭解析器有什麼區別?
Set-Cookie 解析器面向服務端回應標頭,重點看瀏覽器「會不會收下這條 Cookie、屬性有沒有問題」;Cookie 請求標頭解析器面向瀏覽器發出去的請求,重點看「這次請求到底帶了哪些 Cookie」。如果你在排查 SameSite、HttpOnly、Secure、Path、Domain、Expires、Max-Age 等屬性配置問題,應該優先使用目前頁面。
HTTP Cookie解析器為什麼瀏覽器明明收到了回應,卻沒有寫入 Cookie?
這正是目前工具最適合解決的問題。常見原因包括 SameSite=None 沒配 Secure、Secure Cookie 試圖在 HTTP 頁面設定、__Host- 前綴違規、Partitioned 缺 Secure、Path 或 Domain 配置不合理、Max-Age 無效或直接為 0,以及瀏覽器第三方 Cookie 策略限制。
工具會檢查哪些常見 Set-Cookie 風險?
目前頁面會自動偵測 14 類高頻問題,包括 SameSite=None 缺 Secure、SameSite 值非法、Partitioned 缺 Secure、缺 HttpOnly、缺 Path、缺 SameSite、__Host- 前綴缺 Secure / Path 不是 / / 錯配 Domain、__Secure- 前綴缺 Secure、Max-Age 無效、Max-Age=0、Domain 以點號開頭以及 Expires 未配 Max-Age 等。
為什麼 SameSite=None 一定要配 Secure?
現代瀏覽器要求跨站可傳送的 Cookie 如果宣告 `SameSite=None`,就必須同時帶 `Secure`,否則瀏覽器通常會直接拒絕寫入。這類問題在第三方登入、SSO、iframe 嵌入和跨域請求除錯中非常常見。
為什麼 __Host- 和 __Secure- 前綴 Cookie 會被瀏覽器拒絕?
`__Host-` 和 `__Secure-` 是帶強約束的安全前綴。`__Host-` 要求必須 Secure、Path=/ 且不能設定 Domain;`__Secure-` 至少要求 Secure。如果違反這些規則,瀏覽器會直接忽略該 Cookie。
Max-Age 和 Expires 應該怎麼看?
Max-Age 是相對秒數,通常優先級高於 Expires;Expires 是絕對時間點,受用戶端時鐘影響。很多服務端只寫 Expires 不寫 Max-Age,雖然能工作,但在除錯時更容易因為時區或系統時間偏差帶來誤判。
這個工具適合排查跨站 Cookie 和第三方 Cookie 問題嗎?
適合。無論是第三方登入、SSO、嵌入 iframe、跨域介面還是 CHIPS(Partitioned Cookie)場景,這個工具都能幫助你快速看清 SameSite、Secure 和 Partitioned 的組合是否合理。
解析結果支援複製或匯出嗎?
支援。你可以一鍵複製原始 Set-Cookie 標頭,也可以查看結構化 JSON 預覽,把每條 Cookie 的名稱、值、屬性和告警結果繼續貼到 Issue、文件、測試指令碼或聯調記錄裡。
會不會把我複製的 Session、Token 上傳到伺服器?
不會。Set-Cookie 內容解析、URL 解碼、屬性拆解和告警檢查都在瀏覽器本機完成,不會把敏感回應標頭上傳到伺服器。
術語表
- Set-Cookie
- HTTP 回應標頭,伺服器透過它告訴瀏覽器儲存一條 Cookie。一個回應可以出現多條 Set-Cookie,每條通常對應一個 Cookie。
- SameSite
- 控制跨站請求是否攜帶 Cookie 的屬性。常見取值為 Strict、Lax、None;其中 None 往往要求同時設定 Secure。
- HttpOnly
- 設定後前端 JavaScript 不能透過 document.cookie 讀取該 Cookie,主要用於降低 XSS 竊取會話的風險。
- Secure
- 設定後瀏覽器只會在 HTTPS(或 localhost 特例)連線中傳送該 Cookie,避免敏感 Cookie 在明文 HTTP 中暴露。
- Max-Age
- Cookie 的相對生存時間,單位是秒。通常優先級高於 Expires,推薦在服務端明確設定。
- Expires
- Cookie 的絕對過期時間點,依賴用戶端本地時間。單獨使用時除錯成本通常比 Max-Age 更高。
- Path
- 限制 Cookie 生效的 URL 路徑前綴。Path 不匹配時,即使 Cookie 已寫入,後續請求也不會帶上。
- Domain
- 限制 Cookie 生效的網域範圍。不設定時通常只限目前主機;設定後可能作用到子域。
- Partitioned(CHIPS)
- 第三方 Cookie 分區儲存方案,常用於瀏覽器逐步收緊第三方 Cookie 後的替代路徑。目前實作通常要求搭配 Secure。
- __Host- / __Secure- 前綴
- 瀏覽器支援的高安全 Cookie 命名前綴,帶有強約束規則。違反規則時瀏覽器會拒絕接收對應 Cookie。
SameSite 三種策略對比速查表
跨站 Cookie 排查時,先看 SameSite 的行為邊界,再看 Secure 是否缺失。
| SameSite 值 | 跨站頂級導覽(GET) | 跨站子資源(img/iframe/script) | 跨站 POST 表單 | 跨站 XHR/fetch | 是否必須 Secure |
|---|---|---|---|---|---|
| Strict | 不傳送 | 不傳送 | 不傳送 | 不傳送 | 否 |
| Lax(預設) | 傳送 | 不傳送 | 不傳送 | 不傳送 | 否 |
| None | 傳送 | 傳送 | 傳送 | 傳送 | 必須設定 Secure |
Set-Cookie 除錯高頻問題對照表
瀏覽器靜默拒收 Cookie 時,先按下面這些方向排查,通常比盯著回應體更快。
| 現象 | 高機率原因 | 優先檢查 |
|---|---|---|
| 瀏覽器完全不寫入 Cookie | SameSite=None 缺 Secure、前綴違規或屬性組合不合法 | 先看目前頁的告警標籤和屬性卡片 |
| 跨站 / iframe 場景不生效 | SameSite 過嚴、Secure 缺失或第三方策略限制 | 重點看 SameSite、Secure、Partitioned |
| Cookie 一寫入就失效 | Max-Age=0、Max-Age 非法、Expires 時間有問題 | 先看 Max-Age,再看 Expires |
| __Host- / __Secure- Cookie 無效 | Secure、Path=/ 或 Domain 約束沒滿足 | 核對前綴告警是否命中 |
| 開發環境正常,生產環境不正常 | HTTPS、Domain、Path、SameSite 或代理層回應差異 | 複製原始標頭,對比不同環境的 Set-Cookie 返回 |
Privacy & Security
Set-Cookie 回應標頭解析、URL 解碼、屬性拆解與 14 類告警檢查全部在瀏覽器本機完成。貼上的 Session、Token、登入態 Cookie 不會上傳到任何伺服器。
- Authentication Header 產生器
- Cache-Control 解析器
- Content-Disposition 解析器
- CORS 回應標頭產生器
- CORS跨域檢查器
- CSP 產生器
- cURL 轉程式碼產生器
- DNS 全球傳播檢查
- DNS查詢
- Forwarded 標頭解析器
- Hreflang 標籤產生器
- HSTS 分析器
- HTTP Cookie 解析器
- HTTP Headers 檢查工具
- HTTP 請求測試器
- HTTP狀態碼查詢
- IP 查詢
- IPv4 轉換器
- IPv4 範圍展開工具
- IPv6 工具箱
- Link 回應標頭解析器
- MX 查詢工具
- 連接埠檢查器
- URL 參數產生器
- Rate Limit Header Parser
- 重新導向鏈檢查器
- Robots.txt 產生器
- Robots.txt檢查
- Security Headers 檢查器
- Security.txt 產生器
- Set-Cookie 解析器
- Site Network Audit
- Sitemap 產生器
- Sitemap Inspector
- SSL憑證檢測
- 子網路計算機
- URL 解析器
- User-Agent解析器
- UTM 連結產生器
- WebSocket測試
- 我的 IP 是什麼?
- WHOIS查詢