ก่อนที่จะเริ่ม
- หากไม่แน่ใจเกี่ยวกับความแตกต่างระหว่าง "เว็บไซต์" กับ "ต้นทาง" โปรดดูการทำความเข้าใจ "เว็บไซต์เดียวกัน" และ "ต้นทางเดียวกัน"
- ส่วนหัว
Referer
ไม่มีตัว R เนื่องจากมีการสะกดผิดในข้อกําหนดเดิม ส่วนหัวReferrer-Policy
และreferrer
ใน JavaScript และ DOM สะกดถูกต้อง
สรุป
- เบราว์เซอร์กําลังพัฒนานโยบาย 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
ที่คุณตั้งค่า

หากไม่ได้ตั้งค่านโยบายไว้ ระบบจะใช้ค่าเริ่มต้นของเบราว์เซอร์ เว็บไซต์มักใช้ค่าเริ่มต้นของเบราว์เซอร์
สําหรับการนําทางและ 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 แบบเต็ม เช่น เส้นทางและสตริงการค้นหา

เช่น
คำขอข้ามแหล่งที่มาที่ส่งจาก 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
เริ่มต้นใหม่

ตอนนี้คุณสามารถตรวจสอบลักษณะการทํางานของเว็บไซต์และแบ็กเอนด์ได้แล้ว
อีกวิธีในการตรวจหาผลกระทบคือตรวจสอบว่าโค้ดเบสของเว็บไซต์ใช้ 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