นโยบายผู้อ้างอิงเริ่มต้นใหม่สำหรับ Chrome - strict-origin-when-cross-origin

มูด นาลปาส
Maud Nalpas

ก่อนจะเริ่ม

สรุป

  • เบราว์เซอร์กำลังพัฒนาไปสู่นโยบาย URL ที่มาเริ่มต้นที่ปรับปรุงความเป็นส่วนตัวเพื่อมอบทางเลือกสำรองที่ดีเมื่อเว็บไซต์ไม่ได้กำหนดนโยบาย
  • Chrome วางแผนที่จะทยอยเปิดใช้ strict-origin-when-cross-origin เป็นนโยบายเริ่มต้นในเวอร์ชัน 85 ซึ่งอาจส่งผลต่อ Use Case ที่อาศัยค่าผู้อ้างอิงจากต้นทางอื่น
  • แม้เป็นค่าเริ่มต้นใหม่ แต่เว็บไซต์จะยังคงเลือกนโยบายที่ต้องการได้
  • หากต้องการลองใช้การเปลี่ยนแปลงใน Chrome ให้เปิดใช้ธงที่ chrome://flags/#reduced-referrer-granularity นอกจากนี้ คุณยังดูการสาธิตนี้เพื่อดูการเปลี่ยนแปลงได้จริง
  • นอกเหนือจากนโยบาย URL ที่มาแล้ว วิธีที่เบราว์เซอร์จัดการกับผู้บอกต่ออาจเปลี่ยนแปลง ดังนั้นโปรดคอยตรวจสอบนโยบายดังกล่าว

สิ่งที่เปลี่ยนแปลงและสาเหตุ

คำขอ HTTP อาจมีส่วนหัว Referer ที่ไม่บังคับ ซึ่งระบุURL ต้นทางหรือ URL ของหน้าเว็บที่สร้างคำขอ ส่วนหัว Referer-Policy จะระบุข้อมูลที่มีให้ใช้งานในส่วนหัว Referer และสำหรับการนำทางและ iframe ใน document.referrer ของปลายทาง

ข้อมูลที่ส่งในส่วนหัว Referer ในคำขอจากเว็บไซต์จะกำหนดโดยส่วนหัว Referrer-Policy ที่คุณตั้งค่าไว้

แผนภาพ: ผู้อ้างอิงที่ส่งในคำขอ
นโยบายการอ้างอิงและผู้อ้างอิง

เมื่อไม่ได้ตั้งค่านโยบาย ระบบจะใช้ค่าเริ่มต้นของเบราว์เซอร์ เว็บไซต์มักจะกำหนดค่าตามค่าเริ่มต้น ของเบราว์เซอร์

สำหรับการนำทางและ iframe ข้อมูลที่อยู่ในส่วนหัว Referer จะเข้าถึงผ่าน JavaScript โดยใช้ document.referrer ได้เช่นกัน

ก่อนหน้านี้ no-referrer-when-downgrade เป็นนโยบายเริ่มต้นที่ใช้กันอย่างแพร่หลายในเบราว์เซอร์ต่างๆ แต่ในปัจจุบัน เบราว์เซอร์จำนวนมากอยู่ในขั้นตอนหนึ่งในการ เปลี่ยนไปใช้ค่าเริ่มต้นที่เพิ่มความเป็นส่วนตัวมากขึ้น

Chrome วางแผนที่จะเปลี่ยนนโยบายเริ่มต้นจาก no-referrer-when-downgrade เป็น strict-origin-when-cross-origin โดยจะเริ่มในเวอร์ชัน 85

ซึ่งหมายความว่าหากไม่ได้กำหนดนโยบายให้เว็บไซต์ไว้ Chrome จะใช้ strict-origin-when-cross-origin โดยค่าเริ่มต้น โปรดทราบว่าคุณยังคงกำหนดนโยบายได้ตามต้องการ โดยการเปลี่ยนแปลงนี้จะมีผลกับเว็บไซต์ที่ไม่ได้ตั้งค่านโยบายเท่านั้น

การเปลี่ยนแปลงนี้หมายความว่าอย่างไร

strict-origin-when-cross-origin ให้ความเป็นส่วนตัวมากขึ้น เมื่อตั้งค่านโยบายนี้ ระบบจะส่งเฉพาะต้นทางในส่วนหัว Referer ของคำขอแบบข้ามต้นทาง

วิธีนี้จะช่วยป้องกันการรั่วไหลของข้อมูลส่วนตัวที่อาจเข้าถึงได้จากส่วนอื่นๆ ของ URL แบบเต็ม เช่น เส้นทางและสตริงการค้นหา

แผนภาพ: มีการส่ง URL ที่มาสำหรับคำขอข้ามต้นทาง ทั้งนี้ขึ้นอยู่กับนโยบาย
แหล่งอ้างอิงที่ส่ง (และ document.referrer) สำหรับคำขอข้ามต้นทาง โดยขึ้นอยู่กับนโยบาย

เช่น

คำขอข้ามต้นทางที่ส่งจาก https://site-one.example/stuff/detail?tag=red ไปยัง https://site-two.example/...

  • ใช้ no-referrer-when-downgrade: ผู้อ้างอิง: https://site-one.example/stuff/detail?tag=red
  • ใช้ strict-origin-when-cross-origin: Referer: https://site-one.example/

สิ่งที่เหมือนเดิม

  • เช่นเดียวกับ no-referrer-when-downgrade strict-origin-when-cross-origin จะปลอดภัย: ไม่มี URL ที่มา (ส่วนหัว Referer และ document.referrer) เมื่อคำขอสร้างขึ้นจากต้นทาง HTTPS (ปลอดภัย) ไปยัง HTTP (ไม่ปลอดภัย) ด้วยวิธีนี้ หากเว็บไซต์ใช้ HTTPS (หากไม่มี ให้จัดลำดับความสำคัญ) URL ของเว็บไซต์จะไม่รั่วไหลในคำขอที่ไม่ใช่ HTTPS เนื่องจากทุกคนในเครือข่ายจะดูข้อมูลเหล่านี้ได้ ซึ่งจะทำให้ผู้ใช้ได้รับการโจมตีแบบแทรกกลางการสื่อสาร
  • ค่าส่วนหัว Referer ในต้นทางเดียวกันคือ URL แบบเต็ม

เช่น คำขอต้นทางเดียวกันที่ส่งจาก https://site-one.example/stuff/detail?tag=red ไปยัง https://site-one.example/...

  • มี strict-origin-when-cross-origin: Referer: https://site-one.example/stuff/detail?tag=red

ผลที่ได้รับ

จากการพูดคุยกับเบราว์เซอร์อื่นๆ และการทดลองของ Chrome เองซึ่งเรียกใช้ใน Chrome 84 เราคาดว่าข้อบกพร่องที่ผู้ใช้มองเห็นได้ยังคงมีอยู่อย่างจำกัด

การบันทึกฝั่งเซิร์ฟเวอร์หรือการวิเคราะห์ที่อาศัย URL เต็มของผู้อ้างอิงที่พร้อมใช้งานมีแนวโน้มที่จะได้รับผลกระทบจากรายละเอียดที่น้อยลงในข้อมูลดังกล่าว

สิ่งที่ต้องทำ

Chrome วางแผนที่จะเริ่มเปิดตัวนโยบาย URL ที่มาเริ่มต้นใหม่ในวันที่ 85 (กรกฎาคม 2020 สำหรับรุ่นเบต้า และเดือนสิงหาคม 2020 สำหรับเวอร์ชันเสถียร) ดูสถานะในรายการสถานะของ Chrome

ทำความเข้าใจและตรวจจับการเปลี่ยนแปลง

หากต้องการทำความเข้าใจเกี่ยวกับการเปลี่ยนแปลงเริ่มต้นใหม่ในทางปฏิบัติ โปรดดูการสาธิตนี้

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

ทดสอบการเปลี่ยนแปลง และดูว่าการเปลี่ยนแปลงนี้จะส่งผลต่อเว็บไซต์ของคุณหรือไม่

คุณลองใช้การเปลี่ยนแปลงได้ตั้งแต่ Chrome 81 เป็นต้นไปโดยไปที่ chrome://flags/#reduced-referrer-granularity ใน Chrome แล้วเปิดใช้แฟล็ก เมื่อเปิดใช้ Flag นี้ เว็บไซต์ทั้งหมดที่ไม่มีนโยบายจะใช้ค่าเริ่มต้น strict-origin-when-cross-origin ใหม่

ภาพหน้าจอของ Chrome: วิธีเปิดใช้แฟล็ก chrome://flags/#reduced-referrer-granularity
การเปิดใช้แฟล็ก

ตอนนี้คุณตรวจสอบลักษณะการทำงานของเว็บไซต์และแบ็กเอนด์ได้แล้ว

อีกสิ่งหนึ่งที่ต้องทำเพื่อตรวจหาผลกระทบคือการตรวจสอบว่าฐานของโค้ดของเว็บไซต์ใช้ URL ที่มาหรือไม่ ไม่ว่าจะผ่านส่วนหัว Referer ของคำขอที่เข้ามาในเซิร์ฟเวอร์ หรือจาก document.referrer ใน JavaScript

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

หากปัญหานี้ส่งผลกระทบต่อเว็บไซต์ของคุณ โปรดพิจารณาทางเลือก

หากใช้ URL ที่มาในการเข้าถึงเส้นทางหรือสตริงคําค้นหาสำหรับคำขอไปยังเว็บไซต์ของคุณ คุณจะมี 2-3 ตัวเลือกดังนี้

  • ให้ใช้เทคนิคและส่วนหัวอื่นๆ เช่น Origin และ Sec-fetch-Site สำหรับการป้องกัน CSRF, การบันทึก และกรณีการใช้งานอื่นๆ โปรดดูนโยบายการอ้างอิงและผู้อ้างอิง: แนวทางปฏิบัติแนะนำ
  • คุณปรับนโยบายบางอย่างให้สอดคล้องกันกับพาร์ทเนอร์ได้หากจำเป็นและมีความโปร่งใสต่อผู้ใช้ การควบคุมการเข้าถึง เมื่อเว็บไซต์ใช้ URL ที่มาเพื่อให้สิทธิ์เข้าถึงทรัพยากรของตนแบบเฉพาะเจาะจงแก่ต้นทางอื่นๆ แม้จะเป็นกรณีที่มีการเปลี่ยนแปลง แต่ต้นทางจะยังคงแชร์ต้นทางในส่วนหัว Referer (และใน document.referrer) อยู่

โปรดทราบว่าเบราว์เซอร์ส่วนใหญ่มีการเคลื่อนไหวในทิศทางที่คล้ายกันเมื่อพูดถึง URL ที่มา (ดูค่าเริ่มต้นของเบราว์เซอร์และวิวัฒนาการของของเบราว์เซอร์เหล่านั้นในนโยบายการอ้างอิงและผู้อ้างอิง: แนวทางปฏิบัติที่ดีที่สุด

ใช้นโยบายอย่างชัดแจ้งที่เพิ่มประสิทธิภาพความเป็นส่วนตัวทั่วทั้งเว็บไซต์

Referer ใดที่ควรส่งในคำขอที่สร้างขึ้นโดยเว็บไซต์ของคุณ กล่าวคือ คุณควรกำหนดนโยบายใดสำหรับเว็บไซต์

แม้จะอยู่ในใจการเปลี่ยนแปลงของ Chrome แต่คุณควรตั้งนโยบายที่ชัดแจ้งและเพิ่มความเป็นส่วนตัว เช่น strict-origin-when-cross-origin หรือเข้มงวดขึ้นในตอนนี้

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

อ่านนโยบาย URL ที่มาและผู้อ้างอิง: แนวทางปฏิบัติแนะนำเพื่อดูรายละเอียดการตั้งค่านโยบาย

เกี่ยวกับ Chrome Enterprise

นโยบาย Chrome สำหรับองค์กร ForceLegacyDefaultReferrerPolicy มีไว้สำหรับผู้ดูแลระบบไอทีที่ต้องการบังคับใช้นโยบาย URL ที่มาเริ่มต้นก่อนหน้าของ no-referrer-when-downgrade ในสภาพแวดล้อมระดับองค์กร วิธีนี้จะช่วยให้องค์กรมีเวลาเพิ่มขึ้น ในการทดสอบและอัปเดตแอปพลิเคชัน

เราจะนำนโยบายนี้ออกใน Chrome 88

ส่งความคิดเห็น

คุณมีความคิดเห็นที่จะแชร์หรือสิ่งที่จะรายงานไหม แชร์ความคิดเห็นเกี่ยวกับความตั้งใจในการจัดส่งของ Chrome หรือทวีตคำถามไปที่ @maudnals

ขอขอบคุณเป็นอย่างยิ่งสำหรับการมีส่วนร่วมและความคิดเห็นของผู้รีวิวทุกคน โดยเฉพาะ Kaustubha Govind, David Van Cleve, Mike West, Sam Dutton, Rowan Merewood, Jxck และ Kayce Basques

แหล่งข้อมูล