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

Maud Nalpas
Maud Nalpas

ก่อนที่จะเริ่ม

สรุป

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

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

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

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

แผนภาพ: ข้อมูลอ้างอิงที่ส่งในคำขอ
Referrer-Policy and Referer

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

สําหรับการนําทางและ 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 แบบเต็ม เช่น เส้นทางและสตริงการค้นหา

แผนภาพ: การส่ง Referer สำหรับคำขอข้ามแหล่งที่มา โดยขึ้นอยู่กับนโยบาย
Referer ที่ส่ง (และ 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: อ้างอิง: https://site-one.example/

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

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

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

  • มี strict-origin-when-cross-origin: อ้างอิง: https://site-one.example/stuff/detail?tag=red

ผลกระทบคืออะไร

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

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

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

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

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

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

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

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

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

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

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

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

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

หากปัญหานี้ส่งผลต่อเว็บไซต์ ให้พิจารณาใช้ทางเลือกอื่น

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

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

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

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

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

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

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

ดูรายละเอียดเกี่ยวกับการตั้งค่านโยบายได้ที่Referrer และ Referrer-Policy: แนวทางปฏิบัติแนะนำ

เกี่ยวกับ Chrome Enterprise

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

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

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

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

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

แหล่งข้อมูล