คุกกี้ที่มีช่วงทดลองใช้จากต้นทางสถานะที่แบ่งพาร์ติชันอิสระ (CHIPS)

ตั้งแต่ Chrome 100 เป็นต้นไป ช่วงทดลองใช้ CHIPS จากต้นทางจะอนุญาตให้เลือกใช้คุกกี้เพื่อ "แบ่งพาร์ติชัน" โดยมีช่องคุกกี้แยกกันตามเว็บไซต์ระดับบนสุด

การเปลี่ยนแปลง

CHIPS คืออะไร

คุกกี้ซึ่งมีสถานะการแบ่งพาร์ติชันอิสระ (CHIPS) เป็นข้อเสนอ Privacy Sandbox ที่อนุญาตให้นักพัฒนาแอปเลือกใช้คุกกี้เพื่อ "แบ่งพาร์ติชัน" โดยมีขวดคุกกี้แยกกันตามเว็บไซต์ระดับบนสุด

คุกกี้ของบุคคลที่สามที่แบ่งพาร์ติชันแล้วจะผูกกับเว็บไซต์ระดับบนสุดที่ตั้งค่าตั้งแต่แรกและไม่สามารถเข้าถึงได้จากที่อื่น เป้าหมายคือการอนุญาตให้บริการของบุคคลที่สามตั้งค่าคุกกี้ได้ แต่ควรอ่านเฉพาะในบริบทของเว็บไซต์ระดับบนสุดที่ตั้งค่าคุกกี้ในตอนแรกเท่านั้น

ช่วงทดลองใช้จากต้นทางมีไว้สําหรับใคร

ช่วงทดลองใช้นี้มีให้บริการเป็นช่วงทดลองใช้จากต้นทางของบุคคลที่สาม ซึ่งช่วยให้ผู้ให้บริการเนื้อหาที่ฝังไว้ลองใช้ฟีเจอร์ใหม่ในหลายๆ เว็บไซต์ได้

หากเว็บไซต์ลงทะเบียนทดลองใช้เป็นบุคคลที่หนึ่ง ผู้ให้บริการเนื้อหาบุคคลที่สามทุกรายในเว็บไซต์ดังกล่าวจะพร้อมใช้งานการแบ่งพาร์ติชันคุกกี้เช่นกัน ผู้ให้บริการบุคคลที่สามเหล่านี้ควรคาดหวังว่าจะได้รับส่วนหัว HTTP เพิ่มเติม ซึ่งระบุการลงทะเบียนในช่วงทดลองใช้จากต้นทาง

ช่วงทดลองใช้จะใช้เวลานานเท่าใด

ช่วงทดลองใช้จะพร้อมใช้งานตั้งแต่ Chrome 100 ไปจนถึง Chrome 105 ตรวจสอบกำหนดการเผยแพร่ Chrome เพื่อดูวันที่เผยแพร่ที่วางแผนไว้

วิธีลงทะเบียนในช่วงทดลองใช้จากต้นทาง

ข้อกำหนดเบื้องต้น

Chrome เวอร์ชัน 103 เวอร์ชันเสถียร

ขั้นตอน

  1. หากต้องการลงทะเบียนช่วงทดลองใช้จากต้นทางและรับโทเค็นสำหรับโดเมนของคุณ โปรดไปที่หน้าช่วงทดลองใช้ CHIPS จากต้นทาง

  2. รวมส่วนหัว Origin-Trial ด้วยโทเค็นที่ถูกต้องในคำตอบที่มีส่วนหัว Set-Cookie ที่มี Partitioned:

    Origin-Trial: <ORIGIN TRIAL TOKEN>
    
  3. เพิ่มแอตทริบิวต์ Partitioned ลงในคุกกี้ด้วย 1 ใน 2 วิธีต่อไปนี้

    • ในSet-Cookieส่วนหัว:

      Set-Cookie: __Host-name=value; Secure; Path=/; SameSite=None; Partitioned;
      
    • ใน JavaScript:

      cookieStore.set({
      name: '__Host-name',
      value: 'value',
      secure: true,
      path: '/',
      sameSite: 'none',
      // Set a partitioned cookie using the attribute below.
      partitioned: true,
      });
      

ตัวอย่าง

เว็บไซต์ที่เข้าร่วมในช่วงทดลองใช้จากต้นทางควรมีส่วนหัวต่อไปนี้ในการตอบกลับ

Origin-Trial: <ORIGIN TRIAL TOKEN>
Set-Cookie: __Host-name=value; Secure; Path=/; SameSite=None; Partitioned;

ยืนยันว่าใช้งานได้

ตรวจสอบส่วนหัว

หากคุณเลือกใช้ช่วงทดลองใช้จากต้นทางและตั้งค่าคุกกี้ที่แบ่งพาร์ติชันเรียบร้อยแล้ว คำขอที่ตามมาจากไคลเอ็นต์ Chrome จะมีส่วนหัวของคำขอ Sec-CH-Partitioned-Cookies: ?0 จนกว่าเซสชันปัจจุบันจะสิ้นสุดลง

Sec-CH-Partitioned-Cookies: ?0
Cookie: __Host-name=value

หากเว็บไซต์ได้รับคุกกี้โดยไม่มีคำแนะนำจากไคลเอ็นต์นี้ การเลือกใช้ช่วงทดลองใช้จากต้นทางไม่สําเร็จ และคุกกี้ที่คุณได้รับไม่มีการแบ่งพาร์ติชัน

คำตอบที่ไม่มีส่วนหัว Set-Cookie ที่มี Partitioned จะไม่ส่งผลต่อสถานะการเข้าร่วมโปรแกรมทดลองใช้จากต้นทางของเว็บไซต์

หากคุณไม่ตอบสนองด้วยโทเค็นที่ถูกต้องในส่วนหัว Origin-Trial คุกกี้ที่ได้รับการแบ่งพาร์ติชันในเครื่องจะถูกแปลงเป็นคุกกี้ที่ไม่ได้แบ่งพาร์ติชัน

ดูรายละเอียดเพิ่มเติมได้ในเอกสารประกอบของ CHIPS ใน chromium.org

เครื่องมือสำหรับนักพัฒนาเว็บ

  1. ไปที่ chrome://flags/#partitioned-cookies แล้วเปลี่ยนการตั้งค่าเป็น "เปิดใช้"
  2. รีสตาร์ท Chromium โดยคลิก "เปิดอีกครั้ง" ที่มุมขวาล่าง หรือไปที่ chrome://restart
  3. ไปที่ chrome://settings/cookies และตรวจสอบว่าได้ตั้งปุ่มตัวเลือกเป็น "อนุญาตคุกกี้ทั้งหมด" หรือ "บล็อกคุกกี้ของบุคคลที่สามในโหมดไม่ระบุตัวตน"
  4. โหลดเว็บไซต์ที่มีการฝัง
  5. เปิด "เปิดเครื่องมือสำหรับนักพัฒนาเว็บ" ไปยังแอปพลิเคชัน > คุกกี้ > yourSite แล้วมองหาคอลัมน์ Partition Key (คีย์พาร์ติชัน) ใน DevTools

รายละเอียดเพิ่มเติม

ข้อกำหนดของคุกกี้

  • ต้องตั้งค่าคุกกี้ที่แบ่งพาร์ติชันด้วย Secure (ไม่ต้องใช้ Path=/ อีกต่อไป โปรดดู github.com/privacycg/CHIPS/pull/49)
  • ใช้แอตทริบิวต์ SameParty ร่วมกับ Partitioned. ไม่ได้

Chrome จะบังคับใช้กฎเหล่านี้กับคุกกี้ที่ตั้งค่าด้วยแอตทริบิวต์ Partitioned ไม่ว่าจะเปิดหรือปิดใช้การแบ่งพาร์ติชันคุกกี้ คุกกี้ที่ตั้งค่าไม่ถูกต้องจะถูกปฏิเสธ

หากปิดใช้การแบ่งพาร์ติชันคุกกี้ แต่มีการตั้งค่าคุกกี้ด้วยแอตทริบิวต์ที่ถูกต้อง Chrome จะไม่สนใจแอตทริบิวต์ Partitioned และคุกกี้ที่ได้จะยังคงส่งคำขอไปยังโฮสต์บนเว็บไซต์ระดับบนสุดที่ต่างจากที่ตั้งค่าไว้

คุกกี้ที่แบ่งพาร์ติชันควรมีแอตทริบิวต์ SameSite=None ด้วยเพื่อให้ส่งคุกกี้ในบริบทของบุคคลที่สามในเบราว์เซอร์ที่ไม่รองรับการแบ่งพาร์ติชันคุกกี้ได้

JavaScript และ Service Worker

เฟรมที่เลือกเข้าร่วมช่วงทดลองใช้จากต้นทางจะมีสิทธิ์เข้าถึงการอ่านและการเขียนคุกกี้ที่มีการแบ่งพาร์ติชันโดยใช้ JavaScript API เช่น document.cookie และ CookieStore API เฟรมที่ไม่อยู่ในสคริปต์ของการทดลองใช้จะไม่สามารถอ่านหรือเขียนคุกกี้ที่มีการแบ่งพาร์ติชัน

Service Worker ไม่รองรับช่วงทดลองใช้ CHIPS ต้นทาง

มีส่วนร่วมและแชร์ความคิดเห็น