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

Maud Nalpas
Maud Nalpas

ก่อนจะเริ่ม

สรุป

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

มีอะไรเปลี่ยนแปลงบ้างและเพราะเหตุใด

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

ส่วนหัว Referrer-Policy ที่คุณตั้งค่าไว้จะเป็นตัวกำหนดข้อมูลที่ส่งในส่วนหัว 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 แบบเต็ม เช่น เส้นทางและสตริงการค้นหา

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

เช่น

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

  • ด้วย no-referrer-when-downgrade: URL ที่มา: https://site-one.example/stuff/detail?tag=red
  • ด้วย strict-origin-when-cross-origin: URL ที่มา: https://site-one.example/

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

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

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

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
การเปิดใช้การแจ้งว่าไม่เหมาะสม

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

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

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

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

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

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

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

ใช้นโยบายที่ประกาศชัดเจนว่าปรับปรุงความเป็นส่วนตัวได้ทั่วทั้งเว็บไซต์

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

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

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

ดูรายละเอียดเกี่ยวกับการตั้งค่านโยบายได้ใน Referrer and 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

แหล่งข้อมูล