วิธีการทดสอบชุดโดเมนของบุคคลที่หนึ่ง

ชุดบุคคลที่หนึ่งเวอร์ชันล่าสุดพร้อมให้นักพัฒนาซอฟต์แวร์ทดสอบ Flag ฟีเจอร์จาก Chrome 108 แล้ว เรากําลังทํางานอย่างหนักกับชุดของบุคคลที่หนึ่งโดยมีเป้าหมายเพื่อเปิดตัว ดังนั้นเราจะพิจารณาความคิดเห็นสําหรับการทดสอบระยะนี้ของนักพัฒนาซอฟต์แวร์จนถึงการเปิดตัว Chrome 111 ในช่วงต้นเดือนมีนาคม (7 มีนาคม 2023)

ความคิดเห็นเกี่ยวกับระบบนิเวศได้เน้นที่กรณีการใช้งานข้ามเว็บไซต์ที่จะได้รับผลกระทบเมื่อ Chrome ไม่รองรับคุกกี้ของบุคคลที่สามอีกต่อไป ข้อเสนอชุดของบุคคลที่หนึ่งจะตรวจสอบและจัดการกับคลาสของ Use Case แบบข้ามเว็บไซต์ ซึ่งเว็บไซต์ที่ขึ้นต่อกันมีความสัมพันธ์ที่แสดงต่อเบราว์เซอร์ได้ เพื่อให้เบราว์เซอร์ดําเนินการที่เหมาะสมในนามของผู้ใช้และ/หรือแสดงข้อมูลดังกล่าวต่อผู้ใช้ได้อย่างมีประสิทธิภาพ

ข้อเสนอฉบับปรับปรุงใช้ API 2 รายการ (Storage Access API และ API ใหม่ที่ชื่อชั่วคราวว่า requestStorageAccessForOrigin) เพื่อให้เว็บไซต์มีวิธีการที่ใช้งานได้ในการขอสิทธิ์เข้าถึงคุกกี้ข้ามเว็บไซต์ภายในชุดข้อมูลจากบุคคลที่หนึ่ง วิธีการด้านล่างจะช่วยให้คุณทดสอบและตรวจสอบชุดค่าผสมที่อาจต้องการสร้างสําหรับเว็บไซต์และจุดที่เหมาะสมในการเรียกใช้ API 2 รายการที่แตกต่างกัน

ภาพรวมชุดโดเมนของบุคคลที่หนึ่ง

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

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

เราขอแนะนําให้ใช้ประโยชน์จาก Storage Access API (SAA) และ requestStorageAccessForOrigin เพื่อเปิดใช้การเข้าถึงคุกกี้ภายใน FPS เพื่อให้เบราว์เซอร์จัดการชุดย่อยแต่ละชุดตามผลกระทบด้านความเป็นส่วนตัวของชุดย่อยแต่ละชุดได้ง่ายขึ้น

เมื่อใช้ SAA เว็บไซต์อาจขอสิทธิ์เข้าถึงคุกกี้ข้ามเว็บไซต์ Chrome จะอนุมัติคำขอโดยอัตโนมัติหากเว็บไซต์ที่ขอและเว็บไซต์ระดับบนสุดอยู่ใน FPS เดียวกัน โปรดดูข้อมูลเกี่ยวกับวิธีที่เบราว์เซอร์อื่นๆ ประมวลผลการเรียกใช้ SAA ในเอกสารประกอบ Storage Access API (SAA)

ปัจจุบัน SAA กําหนดให้เอกสารต้องได้รับการเปิดใช้งานของผู้ใช้ก่อนเรียกใช้เมธอดของ API

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

ตั้งค่าการส่ง

รายการ FPS หลักจะเป็นรายการที่ผู้ใช้ทั่วไปดูได้ในรูปแบบไฟล์ JSON ซึ่งอยู่ในที่เก็บ GitHub ของ FPS ใหม่ ซึ่งจะเป็นแหล่งข้อมูลสำหรับชุดข้อมูลทั้งหมด Chrome จะใช้ไฟล์นี้เพื่อนำไปใช้กับลักษณะการทำงาน

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

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

วิธีทดสอบในเครื่อง

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

หากต้องการทดสอบ FPS ในเครื่อง ให้ใช้ Chrome เวอร์ชัน 108 ขึ้นไปที่เปิดจากบรรทัดคำสั่ง

หากต้องการดูตัวอย่างฟีเจอร์ใหม่ๆ ของ Chrome ก่อนเปิดตัว ให้ดาวน์โหลด Chrome เวอร์ชันเบต้าหรือ Canary

ตัวอย่าง

google-chrome \
--enable-features="FirstPartySets,StorageAccessAPI,StorageAccessAPIForOriginExtension,PageInfoCookiesSubpage,PrivacySandboxFirstPartySetsUI" \
--use-first-party-set="{\"primary\": \"https://first-party-sets.glitch.me\", \"associatedSites\": [\"https://fps-member-1.glitch.me\"]}" \

ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีเรียกใช้ Chromium ด้วย Flag

ขั้นตอน

หากต้องการเปิดใช้ FPS ในเครื่อง คุณต้องเลือกใช้ตัวเลือก --enable-features ของ Chrome พร้อมรายการ Flag ที่คั่นด้วยคอมมาตามที่อธิบายไว้ในส่วนนี้ และประกาศชุดเว็บไซต์ที่เกี่ยวข้องเป็นออบเจ็กต์ JSON เพื่อส่งไปยัง --use-first-party-set

เปิดใช้ FPS

FirstPartySets เปิดใช้ FPS ใน Chrome

FirstPartySets

เปิดใช้ Storage Access API

StorageAccessAPI

เปิดใช้ Storage Access API (SAA) ใน Chrome ซึ่งช่วยให้ iframe ที่ฝังใช้ requestStorageAccess() เพื่อขอสิทธิ์เข้าถึงคุกกี้ในบริบทข้ามเว็บไซต์ได้ แม้ว่าเบราว์เซอร์จะบล็อกคุกกี้ของบุคคลที่สามก็ตาม

โปรดทราบว่าเมื่อเรียกใช้ requestStorageAccess() จะต้องมีการโต้ตอบของผู้ใช้จึงจะแก้ไขได้ Chrome เวอร์ชันในอนาคตอาจกำหนดข้อกำหนดชุดอื่น เนื่องจากข้อกำหนดเฉพาะของ SAA ยังอยู่ระหว่างการพัฒนา ดูรายการการปรับปรุงที่วางแผนไว้สำหรับการใช้งาน SAA ของ Chrome ได้ที่นี่

StorageAccessAPIForOriginExtension

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

ประกาศชุดในเครื่อง

ชุดโดเมนของบุคคลที่หนึ่งคือคอลเล็กชันโดเมนซึ่งมี "โดเมนหลักของชุด" รายการเดียวและอาจมี "สมาชิกของชุด" หลายรายการ สมาชิกชุดสามารถมีโดเมนประเภทต่างๆ มากมายที่มีชุดย่อยตามกรณีการใช้งาน

สร้างออบเจ็กต์ JSON ที่มี URL ที่เป็นสมาชิกของชุด แล้วส่งไปยัง --use-first-party-set

ในตัวอย่างด้านล่าง primary จะแสดงโดเมนหลัก และ associatedSites จะแสดงโดเมนที่เป็นไปตามข้อกําหนดของชุดย่อยที่เชื่อมโยง

{
     "primary": "https://primary.com",
    "associatedSites": ["https://associate1.com", "https://associate2.com", "https://associate3.com"]
}

ตัวอย่าง

--use-first-party-set="{\"primary\": \"https://first-party-sets.glitch.me\", \"associatedSites\": [\"https://fps-member-1.glitch.me\"]}"

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

เปิดใช้ UI FPS

PageInfoCookiesSubpage

เปิดใช้การแสดง FPS ในส่วน PageInfo ที่เข้าถึงได้จากแถบ URL

PrivacySandboxFirstPartySetsUI

เปิดใช้ตัวเลือก "อนุญาตให้เว็บไซต์ที่เกี่ยวข้องดูกิจกรรมของคุณในกลุ่ม" ใน UI ของ FPS ในการตั้งค่า Chrome ในส่วนความเป็นส่วนตัวและความปลอดภัย → คุกกี้และข้อมูลอื่นๆ ของเว็บไซต์ (chrome://settings/cookies)

ยืนยันว่ามีการบล็อกคุกกี้ของบุคคลที่สาม

  1. ในการตั้งค่า Chrome ให้ไปที่ความเป็นส่วนตัวและความปลอดภัย → คุกกี้และข้อมูลเว็บไซต์อื่นๆ หรือ chrome://settings/cookies
  2. ในส่วนการตั้งค่าทั่วไป ให้ตรวจสอบว่าได้เปิดใช้ "บล็อกคุกกี้ของบุคคลที่สาม" แล้ว
  3. ตรวจสอบว่าได้เปิดใช้ตัวเลือกย่อย "อนุญาตให้เว็บไซต์ที่เกี่ยวข้องดูกิจกรรมของคุณในกลุ่ม" ด้วย

ข้อควรพิจารณาด้านความปลอดภัย

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

การปรับปรุงที่วางแผนไว้

เพื่อเป็นการปรับปรุงเรื่องนี้ เวอร์ชัน Chrome ในอนาคตจะมีการควบคุมความปลอดภัยเพิ่มเติม โดยมีเป้าหมายเพื่อให้แน่ใจว่าผู้ฝังโฆษณาเลือกใช้อย่างชัดแจ้ง การปรับปรุงที่เสนอจะมอบสิทธิ์เข้าถึงแบบต่อเฟรมเท่านั้น กำหนดให้ใช้ CORS ในคำขอที่มีข้อมูลเข้าสู่ระบบ และจำกัดขอบเขตการเข้าถึงไว้ที่ต้นทางเท่านั้น อ่านเพิ่มเติมได้ในการวิเคราะห์ความปลอดภัยล่าสุด

ดูรายการการปรับปรุงที่วางแผนไว้สำหรับการใช้งาน SAA ของ Chrome

โปรดทราบว่า Chrome จะส่งเฉพาะคุกกี้ที่มีเครื่องหมาย SameSite=None ในบริบทที่ฝังแบบข้ามเว็บไซต์ ซึ่งเป็นบริบทที่ Storage Access API เกี่ยวข้อง อย่างไรก็ตาม เราไม่อาจคาดเดาได้ว่าคุกกี้ดังกล่าวจะใช้ได้ที่ไหนจนกว่าเบราว์เซอร์ทุกรายจะเลิกใช้งานการเข้าถึงคุกกี้เหล่านั้นโดยค่าเริ่มต้น คุณไม่ควรคิดว่าระบบจะอนุญาตให้เข้าถึงได้ภายใน FPS เท่านั้น และเว็บไซต์ควรใช้แนวทางปฏิบัติแนะนำด้านความปลอดภัยมาตรฐานต่อไป

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

การทดสอบในเครื่องเป็นโอกาสให้คุณได้ลองใช้กลไก Storage Access API เพื่อเปิดใช้ FPS และแชร์ความคิดเห็นหรือปัญหาที่คุณพบ นอกจากนี้ การทดสอบกระบวนการส่งชุดข้อมูลใน GitHub ยังถือเป็นโอกาสในการแชร์ประสบการณ์เกี่ยวกับกระบวนการและขั้นตอนการตรวจสอบด้วย วิธีมีส่วนร่วมและแชร์ความคิดเห็นเกี่ยวกับข้อเสนอฉบับปรับปรุง