Defaults.Exposed › การแก้ไข › Referrer-Policy
วิธีแก้ไข Referrer-Policy
Referrer-Policy คือคำสั่งหนึ่งบรรทัดที่เว็บไซต์ของคุณส่งให้เบราว์เซอร์ของผู้เข้าชมทุกคน โดยควบคุมว่าจะมีที่อยู่เว็บของคุณเดินทางไปกับพวกมันเท่าไหร่เมื่อคลิกลิงก์ไปยังเว็บไซต์อื่น หากไม่มี ที่อยู่แบบเต็มของหน้าที่พวกเขาอยู่ — ไม่ว่าจะเป็นคำค้นหา หมายเลขบัญชี ลิงก์รีเซ็ต เส้นทางหน้าภายใน และทุกอย่าง — จะถูกส่งให้เว็บไซต์ถัดไปที่พวกเขาไปถึงอย่างเงียบๆ รวมถึงโฆษณา บริษัทวิเคราะห์ และที่ใดก็ตามที่ลิงก์ชี้ไป
สรุปสำหรับธุรกิจของคุณ: ทุกครั้งที่ผู้เข้าชมคลิกลิงก์ขาออก โฆษณา หรือ resource ที่ใช้ร่วมกัน เบราว์เซอร์ของมันสามารถส่งที่อยู่แบบเต็มของหน้าของคุณไปยังปลายทาง — และหากที่อยู่ของคุณมีคำค้นหา ID ลูกค้า หมายเลขออร์เดอร์ หรือลิงก์ครั้งเดียว คุณกำลังรั่วไหลข้อมูลลูกค้าให้บุคคลที่สามที่คุณไม่ควบคุม นั่นคือปัญหาการปกป้องข้อมูลที่หน่วยงานกำกับดูแลให้ความสำคัญอย่างจริงจัง ซึ่งเป็นคำสัญญาความเป็นส่วนตัวที่ถูกทำลายอย่างเงียบๆ และเป็นช่องว่างที่ทีมความปลอดภัยของลูกค้าจะตรวจพบระหว่างการตรวจสอบ
สิ่งนี้อาจทำให้คุณเสียค่าใช้จ่าย
- ลูกค้ากรอกแบบฟอร์มหรือค้นหา จากนั้นคลิกลิงก์ขาออกหรือโฆษณา — และที่อยู่หน้า พร้อมกับสิ่งที่พวกเขาพิมพ์ ถูกส่งตรงไปยังผู้ลงโฆษณาหรือบริษัทวิเคราะห์ที่คุณไม่ได้ตั้งใจจะแชร์
- ลิงก์รีเซ็ตรหัสผ่านและลิงก์ยืนยันบัญชีบางครั้งมีโทเค็นลับในที่อยู่เว็บ หากไม่มี header นี้ การคลิกลิงก์ใดก็ตามบนหน้านั้นสามารถส่งที่อยู่ทั้งหมด — รวมถึงโทเค็น — ไปยังเว็บไซต์ภายนอก
- เส้นทางหน้าภายในส่วนตัว (พื้นที่ admin หน้าสำหรับลูกค้าเท่านั้น ระดับราคา ลิงก์เอกสาร) ถูกเปิดเผยให้บุคคลที่สามทุกรายที่ผู้เข้าชมคลิกผ่าน มอบแผนที่เว็บไซต์ของคุณให้คู่แข่งและผู้แอบดูที่ไม่ควรเห็น
- การตรวจสอบความปลอดภัยของลูกค้าหรือการตรวจสอบความเป็นส่วนตัวสแกนเว็บไซต์ของคุณ เห็นว่าไม่มี Referrer-Policy และบันทึกเป็นความล้มเหลวในการลดข้อมูล — ประเภทของการค้นพบที่หยุดสัญญาหรือการรับรอง
- ข้อมูลส่วนบุคคลตกไปอยู่ในมือของผู้ประมวลผลที่คุณไม่มีข้อตกลงด้วย ทำให้การละเลยห้านาทีกลายเป็นการละเมิดการปกป้องข้อมูลที่ต้องรายงาน
เหตุใดจึงสำคัญ เบราว์เซอร์ถ้าปล่อยให้ตัดสินใจเอง จะพูดมาก: ตามค่าเริ่มต้นจะบอกเว็บไซต์ถัดไปว่าผู้เข้าชมมาจากที่ใด มักรวมถึงที่อยู่แบบเต็มของหน้า สำหรับเว็บไซต์โบรชัวร์นั่นอาจไม่เป็นอันตราย แต่เมื่อที่อยู่ของคุณมีสิ่งส่วนตัว — คำค้นหา ID ออร์เดอร์ อีเมลในลิงก์ เส้นทางส่วนตัว — ค่าเริ่มต้นนั้นจะรั่วไหลอย่างเงียบๆ ไปยังฝ่ายภายนอก Referrer-Policy คือการตั้งค่าเดียวที่บอกเบราว์เซอร์ให้หยุดแบ่งปันเกินไป มันเป็นการตรวจสอบที่ให้คะแนนในการ์ดคะแนนของคุณมีค่าจริงๆ แมพโดยตรงกับหน้าที่ลดข้อมูลตามกฎหมายความเป็นส่วนตัว และเป็นหนึ่งใน security header มาตรฐานที่การตรวจสอบระดับมืออาชีพใดๆ คาดหวังว่าจะพบ
มันคืออะไร เป็นคำพูดง่ายๆ
ทุกครั้งที่ผู้เข้าชมบนเว็บไซต์ของคุณคลิกลิงก์ไปยังเว็บไซต์อื่น — ลิงก์ขาออก แบนเนอร์โฆษณา “แชร์สิ่งนี้” แม้แต่ฟอนต์หรือรูปภาพที่โหลดจากที่อื่น — เบราว์เซอร์ของมันแนบโน้ตอย่างเงียบๆ ว่าพวกมันมาจากหน้าใดของคุณ โน้ตนั้นเรียกว่า referrer
ใช้อย่างชาญฉลาด referrer ไม่เป็นอันตรายและมีประโยชน์: มันคือวิธีที่เว็บไซต์อื่นรู้ว่า traffic มาจากคุณ และขับเคลื่อนการวิเคราะห์จำนวนมาก ข้อเสียอยู่ในพฤติกรรมเริ่มต้น ถ้าปล่อยไว้โดยไม่จัดการ เบราว์เซอร์ไม่เพียงบอกว่า “พวกมันมาจาก your-business.com” — มักส่งที่อยู่แบบเต็มของหน้าที่แน่นอน รวมถึงทุกอย่างหลังชื่อโดเมน และที่อยู่เว็บมีมากกว่าที่คนส่วนใหญ่รู้: คำค้นหาที่พิมพ์ลงในเว็บไซต์ของคุณ หมายเลขออร์เดอร์และบัญชี เส้นทางไปยังหน้าสมาชิกเท่านั้นส่วนตัว แม้แต่โทเค็นลับครั้งเดียวในลิงก์รีเซ็ตรหัสผ่านและยืนยัน
Referrer-Policy คือคำสั่งเดียวที่เว็บไซต์ของคุณส่งให้เบราว์เซอร์ที่บอกว่ามันได้รับอนุญาตให้แชร์โน้ตนั้นเท่าไหร่ คุณสามารถบอกให้แชร์เฉพาะชื่อโดเมนของคุณ เฉพาะกับหน้าอื่นบนเว็บไซต์ของคุณเอง หรือไม่มีอะไรเลย คิดว่ามันเป็นความแตกต่างระหว่างมอบที่อยู่บ้านแบบเต็มพร้อมตารางรายวันให้คนแปลกหน้า เทียบกับการบอกพวกมันว่าคุณอยู่เมืองใด
นี่เป็นหนึ่งใน “security header” กลุ่มเล็กๆ — คำสั่งสั้นๆ ที่เว็บไซต์ของคุณให้เบราว์เซอร์ของผู้เข้าชมทุกคน มันไม่เปลี่ยนวิธีที่เว็บไซต์ของคุณดูหรือทำงาน มันเพียงหยุดเบราว์เซอร์จากการแบ่งปันเกินไปในนามของคุณ
สิ่งนี้อาจทำให้คุณสูญเสียอะไร
นี่คือวิธีที่เป็นรูปธรรมและใช้ในชีวิตประจำวันที่ Referrer-Policy ที่หายไปหรืออนุญาตมากกัดธุรกิจจริง ไม่มีสิ่งเหล่านี้ต้องการแฮกเกอร์ — มันเกิดขึ้นโดยอัตโนมัติ ทุกวัน ในการใช้งานปกติ
-
การค้นหาที่รั่วไหล ลูกค้าค้นหาเว็บไซต์ของคุณสำหรับสิ่งที่ละเอียดอ่อน — ผลิตภัณฑ์ทางการแพทย์ บริการที่เกี่ยวกับหนี้ การเปรียบเทียบคู่แข่ง — และคำค้นหาอยู่ในที่อยู่หน้า จากนั้นพวกมันคลิกลิงก์ขาออกหรือโฆษณาบนหน้าผลลัพธ์นั้น ผู้ลงโฆษณาตอนนี้รับที่อยู่ของคุณพร้อมคำค้นหาในนั้น เรียนรู้ว่าลูกค้าของคุณกำลังมองหาอะไร คุณไม่เคยตกลงที่จะแชร์สิ่งนั้น และคุณไม่สามารถเอาคืนได้
-
ลิงก์รีเซ็ตที่เปิดเผย ระบบหลายระบบใส่โทเค็นลับครั้งเดียวในที่อยู่ของหน้ารีเซ็ตรหัสผ่าน ยืนยันอีเมล หรือ “magic login” หากหน้านั้นมีลิงก์ขาออกหรือ resource บุคคลที่สามใดๆ ที่อยู่แบบเต็ม — รวมถึงโทเค็น — อาจถูกส่งไปยังเว็บไซต์ภายนอก ในกรณีที่เลวร้ายที่สุด นั่นส่งกุญแจบัญชีให้บุคคลที่สาม
-
แผนที่เว็บไซต์ที่คุณให้ไปฟรี เส้นทางหน้าภายในของคุณมักเปิดเผยโครงสร้างของคุณ: /admin, /enterprise-pricing, /clients/acme, /downloads/private-report โดยไม่มี header นี้ ทุกเว็บไซต์ภายนอกที่ผู้เข้าชมคลิกผ่านรับเส้นทางเหล่านั้น คู่แข่งเรียนรู้ระดับราคาและสายผลิตภัณฑ์ของคุณ ผู้ขูดรู้ว่าหน้าใดควรเป็นเป้าหมาย
-
ความสัมพันธ์การแชร์ข้อมูลที่ไม่ต้องการ กฎหมายความเป็นส่วนตัวคาดหวังให้คุณรู้ว่าข้อมูลส่วนบุคคลของลูกค้าไปที่ใดและมีข้อตกลงในสถานที่ การรั่วไหลที่อยู่หน้าที่มี ID ลูกค้าหรือที่อยู่อีเมลไปยังเครือข่ายโฆษณาและบริษัทวิเคราะห์ — โดยไม่มีข้อตกลงและความยินยอม — เป็นกระแสข้อมูลที่ไม่ได้ควบคุมที่เปลี่ยนการตรวจสอบตามปกติให้เป็นการค้นพบ และการค้นพบให้เป็นการละเมิดที่ต้องรายงาน
-
ดีลที่หยุดในการตรวจสอบ เมื่อทีมความปลอดภัยของลูกค้าที่ใหญ่กว่าตรวจสอบคุณ security header มาตรฐานที่หายไปเป็นช่องทำเครื่องหมายอัตโนมัติที่รวดเร็ว การเห็น Referrer-Policy ขาดบอกพวกมันว่าสุขอนามัยความเป็นส่วนตัวขั้นพื้นฐานไม่เคยถูกตั้งค่า — และความประทับใจนั้นสีสิ่งอื่นทั้งหมดในการตรวจสอบ
มันคืออะไรจริงๆ
ตามค่าเริ่มต้น เบราว์เซอร์ในเวอร์ชันสมัยใหม่ปฏิบัติตามพฤติกรรมที่คล้ายกับ “strict-origin-when-cross-origin” — แต่คุณไม่สามารถพึ่งพาสิ่งนั้นได้ เพราะเบราว์เซอร์เก่า embedded webview และการกำหนดค่าบางอย่างยังคง fallback กลับไปรั่วมากขึ้น วิธีเดียวที่จะแน่ใจคือการตั้งนโยบายอย่างชัดเจน เมื่อคุณทำ คุณกำลังเลือกกฎหนึ่งจากรายการสั้นๆ ที่สำคัญ:
- no-referrer — ไม่แชร์อะไรเลย เว็บไซต์ถัดไปไม่ได้รับบอกอะไรเกี่ยวกับที่มาของผู้เข้าชม ความเป็นส่วนตัวสูงสุด สามารถลดการวิเคราะห์การอ้างอิงของคุณ
- same-origin — แชร์ที่อยู่แบบเต็มเฉพาะเมื่อผู้เข้าชมเคลื่อนที่ระหว่างหน้าบนเว็บไซต์ของคุณเองเท่านั้น ไม่แชร์อะไรกับเว็บไซต์ภายนอก
- strict-origin-when-cross-origin — ค่าเริ่มต้นที่แนะนำ ภายในเว็บไซต์ของคุณเอง เส้นทางแบบเต็มถูกแชร์ ไปยังเว็บไซต์ภายนอก เฉพาะชื่อโดเมนเปล่าของคุณถูกแชร์ (และไม่มีอะไรเลยเมื่อไปจากหน้าที่ปลอดภัยไปยังที่ไม่ปลอดภัย) ฝ่ายภายนอกรู้ว่า traffic มาจากคุณ แต่ไม่เคยได้รายละเอียดส่วนตัวหลังโดเมนของคุณ
- origin — แชร์เฉพาะชื่อโดเมนของคุณเสมอ แม้ภายในเว็บไซต์ของคุณเอง
และสองค่าที่ควรหลีกเลี่ยง เพราะการ์ดคะแนนถือว่าพวกมันไม่ดีกว่าไม่มี header เลย:
- unsafe-url — แชร์ที่อยู่แบบเต็มกับทุกคน เสมอ นี่คือกรณีที่เลวร้ายที่สุดในคำเดียว
- no-referrer-when-downgrade — ค่าเริ่มต้นเบราว์เซอร์เก่า ยังคงส่งที่อยู่แบบเต็มไปยังเว็บไซต์ที่ปลอดภัยอื่นๆ รั่วไหลทุกอย่างที่อธิบายข้างต้น
สิ่งที่ “ดี” ดูเหมือน: Referrer-Policy header มีอยู่และตั้งค่าเป็นค่าที่จำกัด — สำหรับธุรกิจส่วนใหญ่ strict-origin-when-cross-origin สิ่งนี้ทำให้การวิเคราะห์การอ้างอิงทำงานในขณะที่มั่นใจว่าไม่มีอะไรเกินชื่อโดเมนของคุณเข้าถึงเว็บไซต์ภายนอก
วิธีแก้ไข (ฟรี ประมาณ 5 นาที)
ส่งส่วนนี้ให้ผู้ดูแล IT เว็บดีเวลลอปเปอร์ หรือฝ่ายสนับสนุนโฮสติ้งของคุณ — การแก้ไขฟรี เป็นบรรทัดเดียว และจะไม่ทำให้เว็บไซต์ของคุณเสียหาย เป้าหมาย: ตั้งค่า Referrer-Policy response header ด้วยค่า strict-origin-when-cross-origin
Cloudflare (ไม่มีโค้ด — ง่ายที่สุดหากคุณใช้):
Dashboard → โดเมนของคุณ → Rules → Transform Rules → Modify Response Header → สร้าง rule → Set static → ชื่อ Header Referrer-Policy, ค่า strict-origin-when-cross-origin → ใช้กับ request ขาเข้าทั้งหมด → Deploy
Nginx:
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
Apache (ใน site config หรือ .htaccess):
Header always set Referrer-Policy "strict-origin-when-cross-origin"
IIS (web.config):
<httpProtocol><customHeaders>
<add name="Referrer-Policy" value="strict-origin-when-cross-origin" />
</customHeaders></httpProtocol>
Node / Express:
app.use((req, res, next) => { res.setHeader('Referrer-Policy', 'strict-origin-when-cross-origin'); next(); });
หลังจากใช้งาน: โหลดเว็บไซต์ของคุณและรันการตรวจสอบใหม่ หรือใช้ browser developer tools เพื่อยืนยันว่า Referrer-Policy: strict-origin-when-cross-origin มีอยู่
ข้อผิดพลาดทั่วไป
- ตั้งค่าที่อนุญาตมากและคิดว่านับ
unsafe-urlและno-referrer-when-downgradeทั้งสองยังรั่วที่อยู่แบบเต็ม การ์ดคะแนนให้คะแนนเป็นศูนย์ — เหมือนกับไม่มี header ถ้า header มีอยู่แต่ไม่มีคะแนน นั่นแทบแน่นอนเป็นเหตุผล - ตั้งมันบนหน้าแรกเท่านั้น Header ควรส่งในทุกหน้า เพราะการรั่วไหลเกิดขึ้นบนหน้าผลการค้นหา บัญชี และรีเซ็ต ไม่ใช่หน้าแรก ตั้งมันที่ระดับเซิร์ฟเวอร์ CDN หรือ Cloudflare เพื่อให้ใช้กับทั้งไซต์โดยอัตโนมัติ
- ตั้งมันใน HTML
<meta>tags เท่านั้น Tag<meta name="referrer">ทำงานสำหรับบางกรณีแต่ไม่ทั้งหมด และง่ายที่จะไม่สม่ำเสมอข้ามหน้า การตั้งมันเป็น response header จริง (วิธีด้านบน) เป็นวิธีที่เชื่อถือได้ - ปล่อยให้ชั้นหนึ่ง override อีกชั้น ถ้าทั้งเซิร์ฟเวอร์ต้นทางและ CDN ของคุณตั้ง header ด้วยค่าที่ต่างกัน ผลลัพธ์อาจคาดเดาไม่ได้ เลือกที่เดียวในการจัดการมัน — ปกติ CDN หรือ Cloudflare ถ้าคุณมี — และทำให้ส่วนที่เหลือสอดคล้อง
- ถือว่ามันแทนที่การเก็บข้อมูลออกจาก URL Header จำกัดความเสียหาย แต่นิสัยระยะยาวที่สะอาดกว่าคือไม่ใส่ความลับและข้อมูลส่วนตัวในที่อยู่เว็บตั้งแต่แรก ใช้ header ตอนนี้ หารือเรื่อง URL hygiene กับดีเวลลอปเปอร์ของคุณเป็นการติดตาม
คำถามที่พบบ่อย
ฉันไม่ใช่คนเทคนิค — นี่เป็นสิ่งที่ฉันจัดการได้จริงๆ ไหม?
ใช่ และมันเป็นหนึ่งในการแก้ไขที่ง่ายที่สุดในการ์ดคะแนนทั้งหมด มันเป็นบรรทัดเดียวที่เพิ่มโดยใครก็ตามที่รันเว็บไซต์หรือโฮสติ้งของคุณ และบนบริการอย่าง Cloudflare มันเป็นเพียงการคลิกสองสามครั้งโดยไม่ต้องใช้โค้ดเลย ส่งให้พวกเขาในส่วน 'วิธีแก้ไข' ด้านล่าง มันฟรี ใช้เวลาประมาณห้านาที และต่างจากการตั้งค่าความปลอดภัยบางอย่าง ไม่ทำให้สิ่งใดบนเว็บไซต์ของคุณเสียหาย
'referrer' หมายความว่าอะไรที่นี่?
เมื่อมีคนคลิกลิงก์จากหน้าของคุณไปยังเว็บไซต์อื่น เบราว์เซอร์ของมันส่งโน้ตไปบอกว่าพวกมันมาจากหน้าใด — โน้ตนั้นเรียกว่า referrer มันมีประโยชน์จริงสำหรับการวิเคราะห์ที่ซื่อสัตย์ ปัญหาคือตามค่าเริ่มต้น โน้ตมักรวมถึงที่อยู่หน้าแบบเต็ม ไม่ใช่แค่ชื่อโดเมนของคุณ หากที่อยู่นั้นมีสิ่งส่วนตัว มันก็จะถูกแชร์ด้วย Referrer-Policy ช่วยให้คุณลดโน้ตให้เหลือแค่โดเมนของคุณ หรือปิดมัน เพื่อไม่มีสิ่งที่ละเอียดอ่อนรั่วไหล
คุ้มค่าที่จะยุ่งกับสิ่งนี้หากเว็บไซต์ของฉันไม่รับชำระเงินไหม?
เกือบแน่นอนใช่ คุณไม่จำเป็นต้องมี checkout เพื่อมีข้อมูลส่วนตัวในที่อยู่เว็บ — กล่องค้นหา แบบฟอร์มติดต่อ หน้าบัญชี ลิงก์เอกสาร และอีเมลรีเซ็ตรหัสผ่านทั้งหมดวางข้อมูลในแถบที่อยู่เป็นประจำ และแม้ไม่มีข้อมูลส่วนตัวเลย การรั่วไหลเส้นทางหน้าภายในของคุณให้เว็บไซต์ภายนอกทุกแห่งที่ผู้เข้าชมคลิกผ่านก็มอบแผนที่ฟรีของเว็บไซต์ของคุณให้คู่แข่งและผู้ขูด การแก้ไขไม่มีค่าใช้จ่ายและห้านาที ดังนั้นไม่มีเหตุผลที่จะข้าม
การเปิดสิ่งนี้จะทำให้เว็บไซต์หรือการวิเคราะห์ของฉันเสียหายไหม?
ไม่ นี่เป็นหนึ่งใน header ที่ปลอดภัย — มันเพียงควบคุมว่าจะแชร์รายละเอียดที่อยู่เท่าไหร่กับเว็บไซต์อื่น ไม่ใช่ว่าลิงก์จะทำงานหรือไม่ การตั้งค่าที่แนะนำยังคงส่งชื่อโดเมนของคุณไปยังเว็บไซต์ภายนอก ดังนั้นการวิเคราะห์การอ้างอิงที่ถูกต้องยังคงทำงาน มันเพียงหยุดที่อยู่ส่วนตัวแบบเต็มจากการไปด้วย ไม่จำเป็นต้องทดลองดูและไม่มีอะไรต้องทดสอบบน staging ก่อน
นี่เป็นปัญหากฎหมายความเป็นส่วนตัวหรือแค่สิ่งที่ดี?
มันอาจเป็นปัญหาการปฏิบัติตามกฎเกณฑ์จริงๆ กฎการปกป้องข้อมูลกำหนดให้คุณรวบรวมและแชร์เฉพาะข้อมูลส่วนบุคคลขั้นต่ำที่จำเป็น และรู้ว่าข้อมูลของคุณไปที่ใด หากที่อยู่ของคุณมีตัวระบุส่วนบุคคลและคุณรั่วไหลให้ผู้ลงโฆษณาหรือบริษัทวิเคราะห์โดยไม่มีข้อตกลงในสถานที่ นั่นเป็นความล้มเหลวในการลดข้อมูลที่ผู้ตรวจสอบและหน่วยงานกำกับดูแลรับรู้ สำหรับธุรกิจส่วนใหญ่ header นี้เป็นวิธีถูกและเป็นรูปธรรมในการปิดช่องว่างนั้น
สิ่งนี้ส่งผลต่อเกรดของเรา หรือเป็นแค่คำแนะนำ?
มันส่งผลต่อเกรดของคุณ การตรวจสอบ Referrer-Policy ถูกให้คะแนนและมีค่าสูงสุด 15 คะแนนในหมวด Web Security header ที่หายไปถูกทำเครื่องหมายว่ามีความรุนแรงปานกลาง โปรดสังเกตกับดักหนึ่ง: การตั้งค่า header เป็นค่าที่อนุญาตมากเช่น 'unsafe-url' หรือ 'no-referrer-when-downgrade' ให้คะแนนเป็นศูนย์ — เหมือนกับไม่มี header เลย — เพราะค่าเหล่านั้นยังรั่วที่อยู่แบบเต็ม เพื่อให้ได้คะแนน คุณต้องการค่าที่จำกัดอย่างเหมาะสม เช่น 'strict-origin-when-cross-origin'