ตัวแยกวิเคราะห์ Set-Cookie

Set-Cookie Parser

วางส่วนหัวการตอบสนอง Set-Cookie หลายบรรทัดเพื่อตรวจสอบแอตทริบิวต์และระบุการใช้งาน SameSite / Secure ที่มีความเสี่ยง

การ์ดแอตทริบิวต์คุกกี้

2 Set-Cookie
#1sessionabc123
path/
httponly(แฟล็ก)
secure(แฟล็ก)
samesiteLax
ไม่พบปัญหาแอตทริบิวต์ที่ชัดเจน
#2preview1
max-age600 (10m 0s)

setCookieParser.attr.maxAgeHint

samesiteNone
secure(แฟล็ก)
setCookieParser.warn.missingHttpOnlysetCookieParser.warn.missingPath

ดูตัวอย่าง 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 ระหว่างสภาพแวดล้อมการพัฒนา การทดสอบ และการใช้งานจริงเพื่อแก้ไขปัญหาเซสชันผิดปกติหลังจากย้ายสภาพแวดล้อม

วิธีการใช้งาน

  1. คัดลอกเนื้อหาส่วนหัวการตอบสนอง Set-Cookie (รองรับหลายบรรทัด) จาก DevTools ของเบราว์เซอร์ เครื่องมือดักแพ็กเก็ต หรือบันทึกของเซิร์ฟเวอร์
  2. วางลงในพื้นที่ป้อนข้อมูล เครื่องมือจะลบคำนำหน้า `Set-Cookie:` โดยอัตโนมัติและทำการแยกวิเคราะห์ทีละบรรทัด
  3. ดูชื่อ ค่า ค่าที่ถอดรหัส URL การ์ดคุณสมบัติ และป้ายกำกับคำเตือนของแต่ละคุกกี้
  4. คัดลอกส่วนหัวดั้งเดิมหรือดูตัวอย่าง 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, ละเมิดคำนำหน้า หรือชุดค่าผสมคุณสมบัติไม่ถูกต้องดูป้ายกำกับคำเตือนและการ์ดคุณสมบัติบนหน้าปัจจุบันก่อน
ไม่ทำงานในสถานการณ์ข้ามไซต์ / iframeSameSite เข้มงวดเกินไป ขาด 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 และคุกกี้เซสชันที่วางจะไม่ถูกอัปโหลดไปยังเซิร์ฟเวอร์ใดๆ