Trình phân tích Set-Cookie
Set-Cookie Parser
Dán các tiêu đề phản hồi Set-Cookie nhiều dòng để kiểm tra các thuộc tính và phát hiện các kết hợp SameSite / Secure rủi ro.
Thẻ Thuộc tính Cookie
setCookieParser.attr.maxAgeHint
Xem trước 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"
]
}
]Khi trình duyệt không nhận Cookie, thường không phải do giá trị sai mà do thuộc tính Set-Cookie sai.
Đề xuất Liên quan
Trình phân tích Set-Cookie là gì?
Trình phân tích Set-Cookie là công cụ gỡ lỗi chuyên biệt dành cho nội dung `Set-Cookie` trong tiêu đề phản hồi HTTP. Mục tiêu của nó không chỉ đơn giản là tách một dòng văn bản theo dấu chấm phẩy, mà là giúp nhà phát triển xác định: cấu hình cookie này từ máy chủ có đúng không, tại sao trình duyệt không nhận nó, tổ hợp thuộc tính nào có rủi ro bảo mật hoặc khả năng tương thích, và liệu Set-Cookie hiện tại có phù hợp cho các kịch bản trên nhiều trang, SSO, iframe, cookie bên thứ ba hoặc phiên làm việc hay không.
Khác với Cookie trong tiêu đề yêu cầu, Set-Cookie là "lệnh cấu hình" mà máy chủ gửi cho trình duyệt. Nó không chỉ chứa `name=value`, mà còn mang các thuộc tính như SameSite, Secure, HttpOnly, Path, Domain, Expires, Max-Age, Partitioned — các trường này trực tiếp quyết định việc trình duyệt có ghi cookie hay không, khi nào nó hết hạn, trên những đường dẫn và tên miền nào nó có hiệu lực, và liệu nó có thể gửi trong yêu cầu trên nhiều trang hay không. Do đó, nguyên nhân gốc rễ của nhiều vấn đề như "mất phiên đăng nhập", "trình duyệt không gửi cookie", "không hoạt động trong kịch bản xuyên miền" thực chất không nằm ở bản thân giá trị, mà ở cấu hình thuộc tính của Set-Cookie.
Giá trị của trang hiện tại nằm ở việc tách các thuộc tính này từ tiêu đề phản hồi gốc theo cấu trúc, sau đó thực hiện kiểm tra tĩnh kết hợp với quy tắc thực tế của trình duyệt. Ví dụ: SameSite=None có thiếu Secure hay không, Partitioned có đi kèm với Secure hay không, tiền tố __Host- có đặt Domain sai hay không, Max-Age có không hợp lệ hoặc bằng 0 hay không, Expires có thiếu Max-Age hay không. Các vấn đề này trình duyệt thường không hiển thị trực tiếp như lỗi cú pháp, mà từ chối một cách im lặng hoặc biểu hiện là "không hoạt động", do đó kiểm tra bằng công cụ là rất quan trọng.
Nếu bạn chỉ muốn biết những cookie nào hiện đang được gửi trong yêu cầu, đừng dừng lại ở trang này, hãy chuyển đến "Trình phân tích HTTP Cookie" phù hợp hơn để tách tiêu đề yêu cầu. Trang hiện tại phù hợp hơn với các kịch bản kiểm tra tiêu đề phản hồi như "tại sao trình duyệt không ghi", "cấu hình cookie này từ máy chủ có nguy cơ tiềm ẩn không", "liệu tổ hợp thuộc tính bảo mật và trên nhiều trang có hợp lý không".
Trường hợp sử dụng
- Khi trình duyệt từ chối ghi cookie, nhanh chóng xác định đó là vấn đề cấu hình SameSite, Secure, HttpOnly hay Path/Domain
- Trong kịch bản đăng nhập bên thứ ba, SSO, nhúng iframe hoặc yêu cầu trên nhiều trang, kiểm tra xem SameSite=None có được kết hợp chính xác với Secure hay không
- Khi kiểm toán bảo mật, kiểm tra hàng loạt cookie trả về từ giao diện xem có thiếu HttpOnly, thiếu SameSite hoặc tồn tại tổ hợp thuộc tính rủi ro cao hay không
- Xác minh rằng cookie tiền tố __Host-/__Secure- có thỏa mãn các ràng buộc mạnh của trình duyệt hay không, tránh bị loại bỏ một cách im lặng
- Khi gỡ lỗi giải pháp phân vùng bên thứ ba Partitioned Cookie / CHIPS, xác nhận xem Partitioned và Secure có được khai báo đồng thời hay không
- So sánh sự khác biệt của tiêu đề phản hồi Set-Cookie giữa môi trường phát triển, thử nghiệm và sản xuất để xử lý sự cố phiên đăng nhập bất thường sau khi chuyển môi trường
Cách Sử dụng
- Sao chép nội dung tiêu đề phản hồi Set-Cookie (hỗ trợ nhiều dòng) từ DevTools của trình duyệt, công cụ bắt gói tin hoặc nhật ký máy chủ
- Dán vào khu vực nhập, công cụ sẽ tự động loại bỏ tiền tố `Set-Cookie:` và phân tích từng dòng
- Xem tên, giá trị, giá trị giải mã URL, thẻ thuộc tính và nhãn cảnh báo của từng cookie
- Sao chép tiêu đề gốc hoặc xem trước JSON, tiếp tục gửi kết quả cho backend, dán vào Issue hoặc viết vào tập lệnh kiểm thử
Tính năng
- Phân tích độc lập nhiều Set-Cookie: mỗi dòng trong một thẻ riêng, xem tên, giá trị gốc, giá trị giải mã URL và thuộc tính từng cái một
- Tự động kiểm tra 14 vấn đề phổ biến: bao gồm các rủi ro thường gặp như SameSite, Secure, HttpOnly, Path, Domain, Max-Age, Expires, tiền tố __Host-/__Secure- và Partitioned
- Phân tách thuộc tính đầy đủ: hiển thị có cấu trúc các trường SameSite, Secure, HttpOnly, Path, Domain, Expires, Max-Age, Partitioned
- Chuyển đổi Max-Age dễ đọc cho con người: số giây tự động chuyển thành phút, giờ, ngày, giảm chi phí chuyển đổi thủ công
- Nhập hàng loạt nhiều dòng: có thể dán trực tiếp toàn bộ khối tiêu đề phản hồi Set-Cookie đã sao chép từ DevTools hoặc công cụ bắt gói tin
- Sao chép tiêu đề gốc và xem trước JSON: vừa thuận tiện để gửi lại cho backend, vừa thuận tiện để viết tài liệu, Issue, tập lệnh và ca kiểm thử
- Không tải lên cục bộ: Session, Token và cookie trạng thái đăng nhập nhạy cảm được phân tích trong trình duyệt, không rời khỏi máy
Khi nào nên dùng Trình phân tích Set-Cookie, khi nào nên dùng hai trang còn lại?
Việc nhìn rõ "máy chủ đã đặt gì" và "thực tế đã gửi gì trong yêu cầu" là hai việc khác nhau, đừng nhầm lẫn khi kiểm tra.
| Công cụ | Đầu vào phù hợp | Phù hợp nhất cho | Ưu điểm cốt lõi |
|---|---|---|---|
| Trình phân tích Set-Cookie (trang hiện tại) | Tiêu đề phản hồi Set-Cookie | Xử lý sự cố tại sao trình duyệt không nhận cookie, tại sao không hoạt động trên nhiều trang, tại sao cấu hình thuộc tính bảo mật có rủi ro | Phân tách thuộc tính đầy đủ và tự động kiểm tra 14 loại vấn đề cấu hình thường gặp |
| Trình phân tích HTTP Cookie | Tiêu đề yêu cầu Cookie, document.cookie | Xác nhận những cookie nào thực sự được gửi trong yêu cầu, giá trị có được mã hóa URL hay không, có tên trùng lặp hay không | Tập trung hơn vào việc tách cặp tên-giá trị trong tiêu đề yêu cầu và đầu ra được chuẩn hóaMở Trình phân tích HTTP Cookie |
| Trình phân tích Cookie | Kịch bản kiểm tra hỗn hợp chuỗi Cookie và Set-Cookie | Khi bạn chưa chắc chắn nguồn gốc dữ liệu trong tay, hoặc muốn chuyển đổi nhanh hai chế độ Cookie / Set-Cookie trên một trang | Giống như cổng vào tổng thể để gỡ lỗi Cookie, đồng thời hỗ trợ xuất Netscape Cookie FileMở Trình phân tích Cookie |
Best Practices
Đầu tiên xác định vấn đề nằm ở "đặt không thành công" hay "không gửi trong yêu cầu"
Nếu trình duyệt hoàn toàn không ghi cookie, hãy ưu tiên xem trang hiện tại; nếu trình duyệt đã ghi nhưng không gửi trong các yêu cầu sau đó, cần xem xét kết hợp với Trình phân tích HTTP Cookie. Set-Cookie và tiêu đề yêu cầu Cookie là hai giai đoạn khác nhau.
Trong kịch bản trên nhiều trang, trước hết hãy xem tổ hợp SameSite=None và Secure
Bẫy phổ biến nhất trong SSO, đăng nhập bên thứ ba, nhúng iframe và yêu cầu xuyên miền chính là SameSite=None nhưng không cấu hình Secure. Hãy xử lý sạch nhóm vấn đề này trước, sau đó mới xem xét logic máy chủ và chính sách trình duyệt.
Đừng chỉ nhìn vào tên với tiền tố __Host- / __Secure-, hãy kiểm tra tính đầy đủ của các ràng buộc
Nhiều nhóm nghĩ rằng việc thêm tiền tố `__Host-` hoặc `__Secure-` vào tên cookie đã làm cho nó an toàn hơn, nhưng nếu các điều kiện đi kèm như Secure, Path=/, Domain không được thỏa mãn, trình duyệt vẫn sẽ từ chối ghi.
Khi viết tài liệu và tái hiện Issue, ưu tiên giữ lại cả hai tài liệu: tiêu đề gốc và JSON
Tiêu đề gốc phù hợp để backend và vận hành kiểm tra giá trị trả về thực tế; JSON phù hợp để dán vào Issue, ca kiểm thử và tập lệnh để tiếp tục xử lý. Việc giữ lại cả hai cùng nhau sẽ thuận tiện hơn cho việc tái hiện và cộng tác so với chỉ chụp một ảnh màn hình từ DevTools.
Câu hỏi Thường gặp
Sự khác biệt giữa trình phân tích Set-Cookie và trình phân tích tiêu đề yêu cầu Cookie là gì?
Trình phân tích Set-Cookie dành cho tiêu đề phản hồi từ máy chủ, tập trung vào việc xem xét liệu "trình duyệt có chấp nhận cookie này không, có vấn đề với thuộc tính không"; trình phân tích Cookie dành cho yêu cầu do trình duyệt gửi đi, tập trung vào việc xem "yêu cầu này đã gửi những cookie nào". Nếu bạn đang xử lý sự cố cấu hình thuộc tính SameSite, HttpOnly, Secure, Path, Domain, Expires, Max-Age, hãy ưu tiên sử dụng trang hiện tại.
Trình phân tích HTTP CookieTại sao trình duyệt đã nhận được phản hồi nhưng không ghi Cookie?
Đây chính là vấn đề mà công cụ hiện tại phù hợp nhất để giải quyết. Các nguyên nhân phổ biến bao gồm SameSite=None không được cấu hình Secure, cố gắng đặt Secure Cookie trên trang HTTP, vi phạm tiền tố __Host-, Partitioned thiếu Secure, cấu hình Path hoặc Domain không hợp lý, Max-Age không hợp lệ hoặc trực tiếp bằng 0, cũng như các hạn chế chính sách cookie bên thứ ba của trình duyệt.
Công cụ sẽ kiểm tra những rủi ro Set-Cookie phổ biến nào?
Trang hiện tại sẽ tự động phát hiện 14 loại vấn đề thường gặp, bao gồm SameSite=None thiếu Secure, giá trị SameSite không hợp lệ, Partitioned thiếu Secure, thiếu HttpOnly, thiếu Path, thiếu SameSite, tiền tố __Host- thiếu Secure, Path không phải là /, cấu hình sai Domain, tiền tố __Secure- thiếu Secure, Max-Age không hợp lệ, Max-Age=0, Domain bắt đầu bằng dấu chấm và Expires không có Max-Age.
Tại sao SameSite=None nhất thiết phải đi kèm với Secure?
Các trình duyệt hiện đại yêu cầu rằng nếu cookie có thể gửi trên nhiều trang khai báo `SameSite=None`, nó cũng phải có thuộc tính `Secure`, nếu không trình duyệt thường sẽ từ chối ghi trực tiếp. Loại vấn đề này rất phổ biến khi gỡ lỗi đăng nhập bên thứ ba, SSO, nhúng iframe và yêu cầu xuyên miền.
Tại sao trình duyệt từ chối các cookie có tiền tố __Host- và __Secure-?
`__Host-` và `__Secure-` là các tiền tố bảo mật có ràng buộc mạnh. `__Host-` yêu cầu phải có Secure, Path=/ và không được đặt Domain; `__Secure-` tối thiểu yêu cầu Secure. Nếu vi phạm các quy tắc này, trình duyệt sẽ trực tiếp bỏ qua cookie đó.
Nên xem xét Max-Age và Expires như thế nào?
Max-Age là số giây tương đối, thường có độ ưu tiên cao hơn Expires; Expires là thời điểm tuyệt đối, phụ thuộc vào đồng hồ của máy khách. Nhiều máy chủ chỉ viết Expires mà không viết Max-Age, mặc dù điều này hoạt động được, nhưng khi gỡ lỗi dễ gây ra đánh giá sai do chênh lệch múi giờ hoặc thời gian hệ thống.
Công cụ này có phù hợp để xử lý sự cố cookie trên nhiều trang và cookie bên thứ ba không?
Phù hợp. Dù là đăng nhập bên thứ ba, SSO, nhúng iframe, giao diện xuyên miền hay kịch bản CHIPS (Partitioned Cookie), công cụ này có thể giúp bạn nhanh chóng xem xét liệu tổ hợp SameSite, Secure và Partitioned có hợp lý hay không.
Kết quả phân tích có hỗ trợ sao chép hoặc xuất không?
Có hỗ trợ. Bạn có thể sao chép tiêu đề Set-Cookie gốc chỉ bằng một cú nhấp, cũng như xem trước JSON có cấu trúc để dán tên, giá trị, thuộc tính và kết quả cảnh báo của từng cookie vào Issue, tài liệu, tập lệnh kiểm thử hoặc bản ghi liên kết thử.
Session và Token tôi sao chép có được tải lên máy chủ không?
Không. Phân tích nội dung Set-Cookie, giải mã URL, tách thuộc tính và kiểm tra cảnh báo đều được thực hiện cục bộ trong trình duyệt, không tải tiêu đề phản hồi nhạy cảm lên máy chủ.
Thuật ngữ
- Set-Cookie
- Tiêu đề phản hồi HTTP, thông qua đó máy chủ bảo trình duyệt lưu trữ một cookie. Một phản hồi có thể xuất hiện nhiều Set-Cookie, mỗi cái thường tương ứng với một cookie.
- SameSite
- Thuộc tính kiểm soát việc có gửi cookie trong yêu cầu trên nhiều trang hay không. Các giá trị phổ biến là Strict, Lax, None; trong đó None thường yêu cầu đặt Secure cùng lúc.
- HttpOnly
- Khi được đặt, JavaScript phía trước không thể đọc cookie này thông qua document.cookie, chủ yếu được sử dụng để giảm rủi ro đánh cắp phiên làm việc qua XSS.
- Secure
- Khi được đặt, trình duyệt chỉ gửi cookie này trong kết nối HTTPS (hoặc trường hợp ngoại lệ localhost), tránh cookie nhạy cảm bị lộ trên HTTP không mã hóa.
- Max-Age
- Thời gian sống tương đối của cookie tính bằng giây. Thường có độ ưu tiên cao hơn Expires, khuyến nghị đặt rõ ràng trên máy chủ.
- Expires
- Thời điểm hết hạn tuyệt đối của cookie, phụ thuộc vào thời gian cục bộ của máy khách. Khi sử dụng riêng lẻ, chi phí gỡ lỗi thường cao hơn Max-Age.
- Path
- Giới hạn tiền tố đường dẫn URL mà cookie có hiệu lực. Khi Path không khớp, ngay cả khi cookie đã được ghi, nó cũng sẽ không được gửi trong các yêu cầu sau này.
- Domain
- Giới hạn phạm vi tên miền mà cookie có hiệu lực. Khi không đặt, thường chỉ giới hạn cho máy chủ hiện tại; khi đặt có thể tác động đến các miền con.
- Partitioned (CHIPS)
- Giải pháp lưu trữ phân vùng cho cookie bên thứ ba, thường được sử dụng như lộ trình thay thế sau khi các trình duyệt dần thắt chặt quy định về cookie bên thứ ba. Triển khai hiện tại thường yêu cầu đi kèm với Secure.
- Tiền tố __Host- / __Secure-
- Các tiền tố đặt tên cookie bảo mật cao được trình duyệt hỗ trợ, có các quy tắc ràng buộc mạnh. Khi vi phạm quy tắc, trình duyệt sẽ từ chối nhận cookie tương ứng.
Bảng tra cứu nhanh so sánh ba chiến lược SameSite
Khi kiểm tra cookie trên nhiều trang, trước hết hãy xem ranh giới hành vi của SameSite, sau đó kiểm tra xem có thiếu Secure hay không.
| Giá trị SameSite | Điều hướng cấp cao trên nhiều trang (GET) | Tài nguyên phụ trên nhiều trang (img/iframe/script) | Biểu mẫu POST trên nhiều trang | XHR/fetch trên nhiều trang | Có bắt buộc Secure không |
|---|---|---|---|---|---|
| Strict | Không gửi | Không gửi | Không gửi | Không gửi | Không |
| Lax (mặc định) | Gửi | Không gửi | Không gửi | Không gửi | Không |
| None | Gửi | Gửi | Gửi | Gửi | Phải đặt Secure |
Bảng đối chiếu các vấn đề thường gặp khi gỡ lỗi Set-Cookie
Khi trình duyệt từ chối cookie một cách im lặng, trước hết hãy kiểm tra theo các hướng dưới đây, thường nhanh hơn là nhìn chằm chằm vào phần thân phản hồi.
| Triệu chứng | Nguyên nhân có xác suất cao | Ưu tiên kiểm tra |
|---|---|---|
| Trình duyệt hoàn toàn không ghi Cookie | SameSite=None thiếu Secure, vi phạm tiền tố hoặc tổ hợp thuộc tính không hợp lệ | Trước hết xem nhãn cảnh báo và thẻ thuộc tính trên trang hiện tại |
| Không hoạt động trong kịch bản trên nhiều trang / iframe | SameSite quá nghiêm ngặt, thiếu Secure hoặc hạn chế chính sách bên thứ ba | Tập trung vào SameSite, Secure, Partitioned |
| Cookie hết hiệu lực ngay sau khi ghi | Max-Age=0, Max-Age không hợp lệ, vấn đề với thời gian Expires | Trước hết xem Max-Age, sau đó xem Expires |
| __Host- / __Secure- Cookie không hoạt động | Không thỏa mãn ràng buộc Secure, Path=/ hoặc Domain | Kiểm tra xem cảnh báo tiền tố có được kích hoạt hay không |
| Môi trường phát triển bình thường, môi trường sản xuất bất thường | Sự khác biệt phản hồi ở tầng HTTPS, Domain, Path, SameSite hoặc proxy | Sao chép tiêu đề gốc, so sánh phản hồi Set-Cookie ở các môi trường khác nhau |
Privacy & Security
Phân tích tiêu đề phản hồi Set-Cookie, giải mã URL, tách thuộc tính và kiểm tra 14 loại cảnh báo đều được thực hiện hoàn toàn cục bộ trong trình duyệt. Session, Token và cookie phiên đăng nhập được dán vào sẽ không được tải lên bất kỳ máy chủ nào.
- Trình tạo Authentication Header
- Trình phân tích Cache-Control
- Trình phân tích Content-Disposition
- Trình tạo CORS Header
- Công cụ kiểm tra CORS
- Trình tạo CSP
- Trình chuyển đổi cURL sang mã nguồn
- Kiểm tra Phân tán DNS Toàn cầu
- Tra cứu DNS
- Trình phân tích Forwarded Header
- Trình tạo thẻ Hreflang
- Trình phân tích HSTS
- Trình Phân Tích HTTP Cookie
- Kiểm tra HTTP Headers
- HTTP Request Runner
- Tra cứu Mã trạng thái HTTP
- Tra cứu IP
- Bộ chuyển đổi IPv4
- IPv4 Range Expander
- Hộp công cụ IPv6
- Link Header Parser
- Tra cứu MX
- Port Checker
- Trình tạo tham số URL
- Rate Limit Header Parser
- Trình kiểm tra chuỗi chuyển hướng
- Trình tạo Robots.txt
- Trình kiểm tra Robots.txt
- Security Headers Checker
- Security.txt Generator
- Trình phân tích Set-Cookie
- Kiểm tra mạng trang web
- Trình tạo Sitemap
- Sitemap Inspector
- Kiểm Tra Chứng Chỉ SSL
- Máy tính Mạng con
- URL Parser
- công cụ phân tích User-Agent
- UTM Builder
- WebSocket Tester
- What Is My IP?
- Tra cứu WHOIS