ตัวแยกวิเคราะห์ Set-Cookie
Set-Cookie Parser
วางส่วนหัวการตอบสนอง Set-Cookie หลายบรรทัดเพื่อตรวจสอบแอตทริบิวต์และระบุการใช้งาน SameSite / Secure ที่มีความเสี่ยง
การ์ดแอตทริบิวต์คุกกี้
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"
]
}
]เมื่อเบราว์เซอร์ไม่ยอมรับคุกกี้ มักไม่ใช่เพราะค่าผิด แต่เพราะคุณสมบัติ Set-Cookie ผิด
คำแนะนำที่เกี่ยวข้อง
ตัวแยกวิเคราะห์ Set-Cookie คืออะไร?
ตัวแยกวิเคราะห์ Set-Cookie คือเครื่องมือดีบั๊กที่ออกแบบมาโดยเฉพาะสำหรับเนื้อหา `Set-Cookie` ในส่วนหัวการตอบสนอง HTTP วัตถุประสงค์ไม่ใช่แค่การแยกบรรทัดข้อความตามอัฒภาค แต่เพื่อช่วยนักพัฒนากำหนดว่า: การกำหนดค่าคุกกี้นี้จากเซิร์ฟเวอร์ถูกต้องหรือไม่ เหตุใดเบราว์เซอร์จึงไม่ยอมรับ ชุดคุณสมบัติใดที่ก่อให้เกิดความเสี่ยงด้านความปลอดภัยหรือความเข้ากันได้ และ Set-Cookie ปัจจุบันเหมาะสำหรับสถานการณ์ข้ามไซต์ SSO iframe คุกกี้บุคคลที่สาม หรือเซสชันหรือไม่
แตกต่างจาก Cookie ในส่วนหัวคำขอ Set-Cookie คือ 'คำสั่งการกำหนดค่า' ที่เซิร์ฟเวอร์ส่งไปยังเบราว์เซอร์ มันไม่เพียงมี `name=value` แต่ยังมีคุณสมบัติเช่น SameSite, Secure, HttpOnly, Path, Domain, Expires, Max-Age, Partitioned ด้วย — ฟิลด์เหล่านี้กำหนดโดยตรงว่าเบราว์เซอร์จะเขียนคุกกี้หรือไม่ จะหมดอายุเมื่อใด จะทำงานบนเส้นทางและโดเมนใด และสามารถส่งในคำขอข้ามไซต์ได้หรือไม่ ดังนั้นสาเหตุที่แท้จริงของปัญหาหลายอย่างเช่น 'สูญเสียเซสชัน', 'เบราว์เซอร์ไม่ส่งคุกกี้', 'ไม่ทำงานในสถานการณ์ข้ามโดเมน' จึงไม่ได้อยู่ที่ค่าตัวเอง แต่อยู่ที่การกำหนดค่าคุณสมบัติของ Set-Cookie
คุณค่าของหน้าปัจจุบันคือการแยกคุณสมบัติเหล่านี้จากส่วนหัวการตอบสนองดั้งเดิมอย่างมีโครงสร้าง จากนั้นทำการตรวจสอบแบบคงที่ที่รวมกับกฎจริงของเบราว์เซอร์ ตัวอย่างเช่น SameSite=None ขาด Secure หรือไม่ Partitioned จับคู่กับ Secure หรือไม่ คำนำหน้า __Host- ตั้งค่า Domain ผิดหรือไม่ Max-Age ไม่ถูกต้องหรือเป็น 0 หรือไม่ Expires ขาด Max-Age หรือไม่ เบราว์เซอร์มักจะไม่แสดงปัญหาเหล่านี้โดยตรงเหมือนข้อผิดพลาดทางไวยากรณ์ แต่จะปฏิเสธอย่างเงียบ ๆ หรือแสดงอาการว่า 'ไม่ทำงาน' ดังนั้นการตรวจสอบด้วยเครื่องมือจึงมีความสำคัญอย่างยิ่ง
หากคุณแค่ต้องการทราบว่าคุกกี้ใดที่กำลังส่งในคำขอในปัจจุบัน อย่าอยู่ที่หน้านี้ — กรุณาไปที่ 'ตัวแยกวิเคราะห์ HTTP Cookie' ที่เหมาะกว่าสำหรับการแยกส่วนหัวคำขอ หน้าปัจจุบันเหมาะกว่าสำหรับสถานการณ์การตรวจสอบส่วนหัวการตอบสนองเช่น 'เหตุใดเบราว์เซอร์จึงไม่เขียน', 'มีความเสี่ยงที่ซ่อนอยู่ในการกำหนดค่าคุกกี้นี้จากเซิร์ฟเวอร์หรือไม่', 'ชุดคุณสมบัติข้ามไซต์และคุณสมบัติความปลอดภัยเหมาะสมหรือไม่'
กรณีการใช้งาน
- เมื่อเบราว์เซอร์ปฏิเสธการเขียนคุกกี้ ระบุได้อย่างรวดเร็วว่าเป็นปัญหาการกำหนดค่า SameSite, Secure, HttpOnly หรือ Path/Domain
- ในสถานการณ์การเข้าสู่ระบบบุคคลที่สาม SSO การฝัง iframe หรือคำขอข้ามไซต์ ตรวจสอบว่า SameSite=None จับคู่กับ Secure อย่างถูกต้องหรือไม่
- เมื่อตรวจสอบความปลอดภัย ตรวจสอบคุกกี้ที่ส่งกลับจากอินเทอร์เฟซจำนวนมากว่าขาด HttpOnly, SameSite หรือมีชุดค่าผสมคุณสมบัติที่มีความเสี่ยงสูงหรือไม่
- ตรวจสอบว่าคุกกี้คำนำหน้า __Host-/__Secure- เป็นไปตามข้อจำกัดที่เข้มงวดของเบราว์เซอร์หรือไม่ เพื่อหลีกเลี่ยงการถูกเพิกเฉยอย่างเงียบ ๆ
- เมื่อดีบั๊กโซลูชันพาร์ติชันบุคคลที่สาม Partitioned Cookie / CHIPS ยืนยันว่า Partitioned และ Secure ได้รับการประกาศพร้อมกันหรือไม่
- เปรียบเทียบความแตกต่างของส่วนหัวการตอบสนอง Set-Cookie ระหว่างสภาพแวดล้อมการพัฒนา การทดสอบ และการใช้งานจริงเพื่อแก้ไขปัญหาเซสชันผิดปกติหลังจากย้ายสภาพแวดล้อม
วิธีการใช้งาน
- คัดลอกเนื้อหาส่วนหัวการตอบสนอง Set-Cookie (รองรับหลายบรรทัด) จาก DevTools ของเบราว์เซอร์ เครื่องมือดักแพ็กเก็ต หรือบันทึกของเซิร์ฟเวอร์
- วางลงในพื้นที่ป้อนข้อมูล เครื่องมือจะลบคำนำหน้า `Set-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 ที่มนุษย์อ่านได้: วินาทีถูกแปลงเป็นนาที ชั่วโมง วันโดยอัตโนมัติ ลดต้นทุนการแปลงด้วยตนเอง
- ป้อนข้อมูลจำนวนมากหลายบรรทัด: สามารถวางบล็อกส่วนหัวการตอบสนอง Set-Cookie ทั้งหมดที่คัดลอกมาจาก DevTools หรือเครื่องมือดักแพ็กเก็ตโดยตรง
- คัดลอกส่วนหัวดั้งเดิมและดูตัวอย่าง JSON: สะดวกสำหรับส่งกลับไปยังแบ็กเอนด์ และยังสะดวกสำหรับเขียนเอกสาร Issue สคริปต์และเคสทดสอบ
- ประมวลผลในเครื่องโดยไม่อัปโหลด: Session, Token และคุกกี้สถานะการเข้าสู่ระบบที่ละเอียดอ่อนถูกวิเคราะห์ในเบราว์เซอร์ ไม่ออกจากอุปกรณ์
เมื่อใดควรใช้ตัวแยกวิเคราะห์ Set-Cookie และเมื่อใดควรใช้อีกสองหน้า?
การเห็นอย่างชัดเจนว่า 'เซิร์ฟเวอร์ตั้งค่าอะไร' และ 'ส่งอะไรในคำขอจริง' เป็นสองสิ่งที่แตกต่างกัน อย่าสับสนเมื่อตรวจสอบ
| เครื่องมือ | อินพุตที่เหมาะสม | เหมาะที่สุดสำหรับ | ข้อได้เปรียบหลัก |
|---|---|---|---|
| ตัวแยกวิเคราะห์ Set-Cookie (หน้าปัจจุบัน) | ส่วนหัวการตอบสนอง Set-Cookie | แก้ไขปัญหาว่าทำไมเบราว์เซอร์ไม่ยอมรับคุกกี้ ทำไมไม่ทำงานข้ามไซต์ ทำไมการกำหนดค่าคุณสมบัติความปลอดภัยจึงมีความเสี่ยง | แยกคุณสมบัติอย่างสมบูรณ์และตรวจสอบ 14 ประเภทปัญหาการกำหนดค่าที่พบบ่อยโดยอัตโนมัติ |
| ตัวแยกวิเคราะห์ HTTP Cookie | ส่วนหัวคำขอ Cookie, document.cookie | ยืนยันว่าคุกกี้ใดถูกส่งจริงในคำขอ ค่าถูกเข้ารหัส URL หรือไม่ มีชื่อซ้ำหรือไม่ | มุ่งเน้นไปที่การแยกคู่ชื่อ-ค่าในส่วนหัวคำขอและเอาต์พุตที่เป็นมาตรฐานมากขึ้นเปิดตัวแยกวิเคราะห์ HTTP Cookie |
| ตัวแยกวิเคราะห์ Cookie | สถานการณ์การตรวจสอบผสมระหว่างสตริง Cookie และ Set-Cookie | เมื่อคุณยังไม่แน่ใจแหล่งที่มาของข้อมูล หรือต้องการสลับอย่างรวดเร็วระหว่างโหมด Cookie / Set-Cookie สองโหมดในหน้าเดียว | เป็นเหมือนจุดเข้าหลักสำหรับดีบั๊กคุกกี้ และรองรับการส่งออก Netscape Cookie Fileเปิดตัวแยกวิเคราะห์ Cookie |
Best Practices
ขั้นแรกระบุว่าปัญหาอยู่ที่ 'การเขียนล้มเหลว' หรือ 'ไม่ได้ส่งในคำขอ'
หากเบราว์เซอร์ไม่เขียนคุกกี้เลย ควรดูหน้าปัจจุบันก่อน; หากเบราว์เซอร์เขียนแล้วแต่ไม่ส่งในคำขอถัดไป จำเป็นต้องตรวจสอบร่วมกับตัวแยกวิเคราะห์ HTTP Cookie Set-Cookie และส่วนหัวคำขอ Cookie เป็นสองขั้นตอนที่แตกต่างกัน
ในสถานการณ์ข้ามไซต์ ให้ตรวจสอบชุดค่าผสม SameSite=None และ Secure ก่อน
กับดักที่พบบ่อยที่สุดใน SSO การเข้าสู่ระบบบุคคลที่สาม การฝัง iframe และคำขอข้ามโดเมนคือ SameSite=None แต่ไม่ได้กำหนดค่า Secure จัดการกลุ่มปัญหานี้ให้เสร็จก่อน จากนั้นจึงตรวจสอบตรรกะเซิร์ฟเวอร์และนโยบายเบราว์เซอร์
อย่าเพิ่งดูชื่อที่มีคำนำหน้า __Host- / __Secure- ให้ตรวจสอบความสมบูรณ์ของข้อจำกัด
ทีมจำนวนมากคิดว่าการเพิ่มคำนำหน้า `__Host-` หรือ `__Secure-` ให้กับชื่อคุกกี้จะทำให้ปลอดภัยขึ้นแล้ว แต่หากเงื่อนไขที่ตามมาเช่น Secure, Path=/, Domain ไม่ได้รับการปฏิบัติ เบราว์เซอร์จะยังคงปฏิเสธการเขียน
เมื่อเขียนเอกสารและจำลองปัญหา Issue ให้เก็บวัสดุสองอย่าง: ส่วนหัวดั้งเดิมและ JSON
ส่วนหัวดั้งเดิมเหมาะสำหรับแบ็กเอนด์และฝ่ายปฏิบัติการเพื่อตรวจสอบค่าที่ส่งกลับจริง; JSON เหมาะสำหรับวางลงใน Issue เคสทดสอบและสคริปต์เพื่อประมวลผลต่อ การเก็บทั้งสองอย่างร่วมกันจะอำนวยความสะดวกในการจำลองและการทำงานร่วมกันมากกว่าการจับภาพหน้าจอจาก DevTools เพียงอย่างเดียว
คำถามที่พบบ่อย
ตัวแยกวิเคราะห์ Set-Cookie กับตัวแยกวิเคราะห์ส่วนหัวคำขอ Cookie แตกต่างกันอย่างไร?
ตัวแยกวิเคราะห์ Set-Cookie มีไว้สำหรับส่วนหัวการตอบสนองจากเซิร์ฟเวอร์ มุ่งเน้นไปที่การดูว่า 'เบราว์เซอร์จะยอมรับคุกกี้นี้หรือไม่ มีปัญหากับคุณสมบัติหรือไม่'; ตัวแยกวิเคราะห์ Cookie มีไว้สำหรับคำขอที่เบราว์เซอร์ส่งออก มุ่งเน้นไปที่การดูว่า 'ในคำขอนี้ส่งคุกกี้อะไรบ้าง' หากคุณกำลังแก้ไขปัญหาการกำหนดค่าคุณสมบัติ SameSite, HttpOnly, Secure, Path, Domain, Expires, Max-Age ควรใช้หน้าปัจจุบันก่อน
ตัวแยกวิเคราะห์ HTTP Cookieเหตุใดเบราว์เซอร์ได้รับการตอบสนองแล้วแต่ไม่เขียนคุกกี้?
นี่คือปัญหาที่เครื่องมือปัจจุบันเหมาะที่สุดที่จะแก้ไข สาเหตุที่พบบ่อย ได้แก่ SameSite=None ไม่ได้กำหนดค่า Secure, พยายามตั้งค่า Secure Cookie บนหน้า HTTP, ละเมิดคำนำหน้า __Host-, Partitioned ไม่มี Secure, การกำหนดค่า Path หรือ Domain ไม่เหมาะสม, Max-Age ไม่ถูกต้องหรือเป็น 0 โดยตรง และข้อจำกัดนโยบายคุกกี้บุคคลที่สามของเบราว์เซอร์
เครื่องมือจะตรวจสอบความเสี่ยง 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 เสมอ?
เบราว์เซอร์สมัยใหม่กำหนดว่าคุกกี้ที่สามารถส่งข้ามไซต์ที่ประกาศ `SameSite=None` จะต้องมีคุณสมบัติ `Secure` ด้วย มิฉะนั้นเบราว์เซอร์มักจะปฏิเสธการเขียนโดยตรง ปัญหาประเภทนี้พบบ่อยมากเมื่อดีบั๊กการเข้าสู่ระบบบุคคลที่สาม SSO การฝัง iframe และคำขอข้ามโดเมน
เหตุใดเบราว์เซอร์จึงปฏิเสธคุกกี้ที่มีคำนำหน้า __Host- และ __Secure-?
`__Host-` และ `__Secure-` เป็นคำนำหน้าความปลอดภัยที่มีข้อจำกัดที่เข้มงวด `__Host-` กำหนดว่าต้องมี Secure, Path=/ และห้ามตั้งค่า Domain; `__Secure-` อย่างน้อยต้องมี Secure หากละเมิดกฎเหล่านี้ เบราว์เซอร์จะเพิกเฉยต่อคุกกี้นั้นโดยตรง
ควรดู Max-Age และ Expires อย่างไร?
Max-Age คือจำนวนวินาทีสัมพัทธ์ มักมีลำดับความสำคัญสูงกว่า Expires; Expires คือจุดเวลาสัมบูรณ์ ขึ้นอยู่กับนาฬิกาของไคลเอ็นต์ เซิร์ฟเวอร์จำนวนมากเขียนเฉพาะ Expires โดยไม่เขียน Max-Age แม้ว่าจะทำงานได้ แต่เมื่อดีบั๊กจะทำให้เกิดการประเมินผิดได้ง่ายขึ้นเนื่องจากความแตกต่างของเขตเวลาหรือเวลาระบบ
เครื่องมือนี้เหมาะสำหรับแก้ไขปัญหาคุกกี้ข้ามไซต์และคุกกี้บุคคลที่สามหรือไม่?
เหมาะสม ไม่ว่าจะเป็นการเข้าสู่ระบบบุคคลที่สาม SSO การฝัง iframe อินเทอร์เฟซข้ามโดเมน หรือสถานการณ์ CHIPS (Partitioned Cookie) เครื่องมือนี้สามารถช่วยให้คุณเห็นได้อย่างรวดเร็วว่าการรวมกันของ SameSite, Secure และ Partitioned เหมาะสมหรือไม่
ผลลัพธ์การแยกวิเคราะห์รองรับการคัดลอกหรือส่งออกหรือไม่?
รองรับ คุณสามารถคัดลอกส่วนหัว Set-Cookie ดั้งเดิมได้ด้วยคลิกเดียว และยังสามารถดูตัวอย่าง JSON ที่มีโครงสร้างเพื่อวางชื่อ ค่า คุณสมบัติ และผลลัพธ์การเตือนของแต่ละคุกกี้ลงใน Issue เอกสาร สคริปต์ทดสอบ หรือบันทึกการทดสอบบูรณาการ
Session และ Token ที่ฉันคัดลอกจะถูกอัปโหลดไปยังเซิร์ฟเวอร์หรือไม่?
ไม่ การวิเคราะห์เนื้อหา Set-Cookie การถอดรหัส URL การแยกคุณสมบัติ และการตรวจสอบคำเตือนทั้งหมดทำในเครื่องที่เบราว์เซอร์ ส่วนหัวการตอบสนองที่ละเอียดอ่อนจะไม่ถูกอัปโหลดไปยังเซิร์ฟเวอร์
อภิธานศัพท์
- Set-Cookie
- ส่วนหัวการตอบสนอง HTTP ซึ่งเซิร์ฟเวอร์บอกให้เบราว์เซอร์จัดเก็บคุกกี้ การตอบสนองหนึ่งสามารถมี Set-Cookie ได้หลายรายการ แต่ละรายการมักสอดคล้องกับคุกกี้หนึ่งรายการ
- SameSite
- คุณสมบัติที่ควบคุมว่าจะส่งคุกกี้ในคำขอข้ามไซต์หรือไม่ ค่าทั่วไปคือ Strict, Lax, None; ซึ่ง None มักกำหนดให้ต้องตั้งค่า Secure พร้อมกัน
- HttpOnly
- เมื่อตั้งค่าแล้ว JavaScript ฝั่งหน้าบ้านจะไม่สามารถอ่านคุกกี้นี้ผ่าน document.cookie ได้ ใช้เพื่อลดความเสี่ยงของการขโมยเซสชันผ่าน XSS เป็นหลัก
- Secure
- เมื่อตั้งค่าแล้ว เบราว์เซอร์จะส่งคุกกี้นี้ในการเชื่อมต่อ HTTPS (หรือข้อยกเว้น localhost) เท่านั้น หลีกเลี่ยงคุกกี้ที่ละเอียดอ่อนเปิดเผยผ่าน HTTP ที่ไม่เข้ารหัส
- Max-Age
- อายุการใช้งานสัมพัทธ์ของคุกกี้ในหน่วยวินาที มักมีลำดับความสำคัญสูงกว่า Expires แนะนำให้ตั้งค่าอย่างชัดเจนบนเซิร์ฟเวอร์
- Expires
- จุดเวลาหมดอายุสัมบูรณ์ของคุกกี้ ขึ้นอยู่กับเวลาท้องถิ่นของไคลเอ็นต์ เมื่อใช้คนเดียว ต้นทุนการดีบั๊กมักสูงกว่า Max-Age
- Path
- จำกัดคำนำหน้าเส้นทาง URL ที่คุกกี้มีผล หาก Path ไม่ตรงกัน แม้ว่าคุกกี้จะถูกเขียนแล้ว ก็จะไม่ถูกส่งในคำขอถัดไป
- Domain
- จำกัดช่วงโดเมนที่คุกกี้มีผล หากไม่ได้ตั้งค่า มักจะจำกัดอยู่ที่โฮสต์ปัจจุบันเท่านั้น หากตั้งค่าอาจส่งผลต่อโดเมนย่อย
- Partitioned (CHIPS)
- โซลูชันการจัดเก็บแบบแบ่งพาร์ติชันสำหรับคุกกี้บุคคลที่สาม มักใช้เป็นเส้นทางทางเลือกหลังจากที่เบราว์เซอร์ค่อยๆ เข้มงวดกฎเกี่ยวกับคุกกี้บุคคลที่สาม การใช้งานปัจจุบันมักกำหนดให้ต้องจับคู่กับ Secure
- คำนำหน้า __Host- / __Secure-
- คำนำหน้าการตั้งชื่อคุกกี้ความปลอดภัยสูงที่เบราว์เซอร์รองรับ มีกฎข้อจำกัดที่เข้มงวด หากละเมิดกฎ เบราว์เซอร์จะปฏิเสธที่จะรับคุกกี้ที่เกี่ยวข้อง
ตารางอ้างอิงด่วนเปรียบเทียบกลยุทธ์ SameSite สามแบบ
เมื่อตรวจสอบคุกกี้ข้ามไซต์ ให้ดูขอบเขตพฤติกรรมของ SameSite ก่อน จากนั้นตรวจสอบว่าขาด Secure หรือไม่
| ค่า SameSite | การนำทางระดับบนข้ามไซต์ (GET) | ทรัพยากรย่อยข้ามไซต์ (img/iframe/script) | ฟอร์ม POST ข้ามไซต์ | XHR/fetch ข้ามไซต์ | จำเป็นต้องมี Secure หรือไม่ |
|---|---|---|---|---|---|
| Strict | ไม่ส่ง | ไม่ส่ง | ไม่ส่ง | ไม่ส่ง | ไม่ |
| Lax (ค่าเริ่มต้น) | ส่ง | ไม่ส่ง | ไม่ส่ง | ไม่ส่ง | ไม่ |
| None | ส่ง | ส่ง | ส่ง | ส่ง | ต้องตั้งค่า Secure |
ตารางเปรียบเทียบปัญหาที่พบบ่อยเมื่อดีบั๊ก Set-Cookie
เมื่อเบราว์เซอร์ปฏิเสธคุกกี้อย่างเงียบ ๆ ให้ตรวจสอบตามทิศทางด้านล่างก่อน มักจะเร็วกว่าการจ้องดูเนื้อหาการตอบสนอง
| อาการ | สาเหตุที่เป็นไปได้สูง | ตรวจสอบก่อน |
|---|---|---|
| เบราว์เซอร์ไม่เขียนคุกกี้เลย | SameSite=None ไม่มี Secure, ละเมิดคำนำหน้า หรือชุดค่าผสมคุณสมบัติไม่ถูกต้อง | ดูป้ายกำกับคำเตือนและการ์ดคุณสมบัติบนหน้าปัจจุบันก่อน |
| ไม่ทำงานในสถานการณ์ข้ามไซต์ / iframe | SameSite เข้มงวดเกินไป ขาด Secure หรือข้อจำกัดนโยบายบุคคลที่สาม | มุ่งเน้นไปที่ SameSite, Secure, Partitioned |
| คุกกี้หมดอายุทันทีหลังจากเขียน | Max-Age=0, Max-Age ไม่ถูกต้อง, ปัญหากับเวลา Expires | ดู Max-Age ก่อน จากนั้นดู Expires |
| __Host- / __Secure- คุกกี้ไม่ทำงาน | ข้อจำกัด Secure, Path=/ หรือ Domain ไม่เป็นไปตามที่กำหนด | ตรวจสอบว่าคำเตือนคำนำหน้าทำงานหรือไม่ |
| สภาพแวดล้อมการพัฒนาปกติ สภาพแวดล้อมการใช้งานจริงผิดปกติ | ความแตกต่างของการตอบสนองที่ระดับ HTTPS, Domain, Path, SameSite หรือพร็อกซี | คัดลอกส่วนหัวดั้งเดิม เปรียบเทียบการตอบสนอง Set-Cookie ในสภาพแวดล้อมต่างๆ |
Privacy & Security
การวิเคราะห์ส่วนหัวการตอบสนอง Set-Cookie การถอดรหัส URL การแยกคุณสมบัติ และการตรวจสอบคำเตือน 14 ประเภททั้งหมดทำในเครื่องที่เบราว์เซอร์อย่างสมบูรณ์ Session, Token และคุกกี้เซสชันที่วางจะไม่ถูกอัปโหลดไปยังเซิร์ฟเวอร์ใดๆ
- เครื่องมือสร้าง Authentication Header
- เครื่องมือวิเคราะห์ Cache-Control
- เครื่องมือวิเคราะห์ Content-Disposition
- เครื่องมือสร้าง CORS Header
- เครื่องมือตรวจสอบ CORS
- CSP Builder
- ตัวแปลง cURL เป็นโค้ด
- ตรวจสอบการแพร่กระจาย DNS ทั่วโลก
- ค้นหา DNS
- Forwarded Header Parser
- เครื่องมือสร้าง Hreflang Tag
- HSTS Analyzer
- ตัวแยกวิเคราะห์คุกกี้ HTTP
- HTTP Headers Checker
- HTTP Request Runner
- ค้นหารหัสสถานะ HTTP
- ค้นหา IP
- ตัวแปลง IPv4
- เครื่องมือขยายช่วง IPv4
- เครื่องมือจัดการที่อยู่ IPv6
- ตัวแยกวิเคราะห์ส่วนหัว Link
- ค้นหา MX Record
- ตรวจสอบพอร์ต
- สร้างพารามิเตอร์ URL
- ตัวแยกวิเคราะห์ส่วนหัว Rate Limit
- เครื่องมือตรวจสอบห่วงโซ่การเปลี่ยนเส้นทาง
- เครื่องมือสร้าง Robots.txt
- ตรวจสอบ Robots.txt
- ตรวจสอบส่วนหัวความปลอดภัย
- สร้าง Security.txt
- ตัวแยกวิเคราะห์ Set-Cookie
- ตรวจสอบเครือข่ายเว็บไซต์
- เครื่องมือสร้าง Sitemap
- ตรวจสอบ Sitemap
- ตัวตรวจสอบใบรับรอง SSL
- เครื่องคำนวณซับเน็ต
- ตัวแยกวิเคราะห์ URL
- ตัวแยกวิเคราะห์ User-Agent
- ตัวสร้างลิงก์ UTM
- ทดสอบ WebSocket
- What Is My IP?
- ค้นหา WHOIS