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