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