Defaults.Exposed

Defaults.Exposedการแก้ไข › Cross-origin isolation headers (COOP / CORP / COEP)

วิธีแก้ไข Cross-origin isolation headers (COOP / CORP / COEP)

คำสั่งเบราว์เซอร์สามอย่างที่เป็นตัวเลือกที่ควบคุมว่าเว็บไซต์อื่นได้รับอนุญาตให้โต้ตอบกับของคุณอย่างไร — เปิดมันใน popup ฝังรูปภาพและสคริปต์ หรือดึง resource เข้าหน้าของมันเอง มันเป็นการเพิ่มความแข็งแกร่งสมัยใหม่ ไม่ใช่สิ่งจำเป็นพื้นฐาน และในการให้คะแนนของเราเป็นข้อมูล: การขาดมันไม่ลดเกรดของคุณ แต่สองที่ปลอดภัยปิดช่องว่าง phishing popup และการขโมยแบนด์วิดท์ที่เงียบ และทีม IT ของผู้ซื้อที่รอบคอบจะสังเกตเมื่อพวกมันมีอยู่

สรุปสำหรับธุรกิจของคุณ: สองใน header สามนี้ปิดกั้น phishing popup ที่ซับซ้อนและหยุดเว็บไซต์อื่นจากการ hotlink รูปภาพและสคริปต์ของคุณ (ซึ่งทำให้คุณเสียแบนด์วิดท์และอาจรั่วข้อมูล) มันฟรี ใช้เวลาประมาณ 15 นาทีสำหรับดีเวลลอปเปอร์ และจะไม่ทำให้สิ่งใดเสียหาย ตัวที่สามนั้นขั้นสูงและสามารถทำลายการวิเคราะห์ ฟอนต์ และการฝัง — ธุรกิจส่วนใหญ่ควรปล่อยมันไว้ ไม่มีสิ่งเหล่านี้ส่งผลต่อเกรดของคุณ ดังนั้นถือว่าพวกมันเป็นการตกแต่ง ไม่ใช่ความตื่นตระหนก: ทำสองที่ปลอดภัย ข้ามที่เสี่ยงเว้นแต่คุณต้องการมันโดยเฉพาะ

สิ่งนี้อาจทำให้คุณเสียค่าใช้จ่าย

เหตุใดจึงสำคัญ สิ่งเหล่านี้เป็น header การเพิ่มความแข็งแกร่งของเบราว์เซอร์ที่มองไปข้างหน้า ในระเบียบวิธีของเรา ทั้งสามเป็นข้อมูล — มันถูกลงทะเบียนด้วยศูนย์คะแนนและไม่เคยเคลื่อนเกรดของคุณ — เพราะมันเป็นการควบคุมขั้นสูงที่เว็บไซต์สามารถดำเนินการได้อย่างถูกต้องโดยไม่มี และหนึ่งในนั้นสามารถทำอันตรายได้หากนำไปใช้ผิด เราส่งรายงานเกี่ยวกับพวกมันเพื่อให้คุณเห็นว่าคุณยืนอยู่ที่ไหน สองที่ปลอดภัย (COOP และ CORP) คุ้มค่าจริงๆ ที่จะเพิ่ม: ฟรี เร็ว และปิดช่องว่างสำหรับ phishing popup จริงและการขโมย resource โดยไม่ทำลายสิ่งใด

มันคืออะไร เป็นคำพูดง่ายๆ

เมื่อมีคนเข้าชมเว็บไซต์ของคุณ เบราว์เซอร์ของมันไม่เพียงโหลดหน้าของคุณในแบบแยกส่วน — มันยังตัดสินใจว่าเว็บไซต์อื่นได้รับอนุญาตให้โต้ตอบกับของคุณอย่างไร เว็บไซต์อื่นสามารถเปิดเว็บไซต์ของคุณใน popup และเก็บมันไว้ได้ไหม เว็บไซต์อื่นสามารถข้ามไปฝังรูปภาพและสคริปต์ของคุณในหน้าของมันเองได้ไหม เว็บไซต์ของคุณเองสามารถใช้ฟีเจอร์เบราว์เซอร์ที่ทรงพลังและล็อกดาวน์บางอย่างได้อย่างปลอดภัยไหม?

Header สามตัวนี้เป็นคำสั่งสั้น ล่องหน ที่เว็บไซต์ของคุณส่งให้เบราว์เซอร์ของผู้เข้าชมทุกคนเพื่อตอบคำถามเหล่านั้นได้อย่างแม่นยำ พวกมันรู้จักตามชื่อย่อ:

สองในนั้น (COOP และ CORP) ปลอดภัยที่จะเพิ่มและมีประโยชน์จริงๆ ตัวที่สาม (COEP) ขั้นสูงและสามารถทำลายสิ่งต่างๆ ถ้าเปิดอย่างไม่ระมัดระวัง

สิ่งที่สำคัญที่สุดที่ต้องรู้ตั้งแต่ต้น: ในการให้คะแนนของเรา ทั้งสามเป็นข้อมูล พวกมันไม่ส่งผลต่อเกรดของคุณ อย่างที่หายไปไม่ทำให้คุณเสียอะไร เราส่งรายงานเกี่ยวกับพวกมันเพื่อให้คุณเห็นว่าคุณยืนอยู่ที่ไหนและจัดระเบียบชัยชนะที่ง่าย — ไม่ใช่เพื่อให้คุณตื่นตระหนกเกี่ยวกับตัวเลข

สิ่งนี้อาจทำให้คุณสูญเสียอะไร

สิ่งเหล่านี้เป็นความเสี่ยงเฉพาะกลุ่ม ไม่ใช่พาดหัวข่าว — แต่มันเป็นของจริง และการแก้ไขฟรี

มันแต่ละอย่างคืออะไรจริงๆ

COOP — Cross-Origin-Opener-Policy (ปลอดภัย แนะนำ)

เมื่อเว็บไซต์อื่นเปิดของคุณโดยใช้ popup หรือ window.open window ทั้งสองปกติสามารถเก็บ reference ซึ่งกันและกัน การเชื่อมต่อนั้นสามารถถูกใช้ประโยชน์: ผู้เปิดสามารถจัดการหรือเปลี่ยนเส้นทาง window ของคุณ อ่านชิ้นส่วนของ URL ของมัน และจัดการ phishing ที่น่าเชื่อโดยใช้โดเมนจริงของคุณ COOP: same-origin ทำลายความสัมพันธ์นั้น — window ของคุณจะแยกจากสิ่งที่เปิดมันข้าม origin การเรียกดูปกติ ลิงก์ภายในของคุณ และการนำทางธรรมดาไม่ได้รับผลกระทบโดยสิ้นเชิง

สิ่งที่ “ดี” ดูเหมือน: Cross-Origin-Opener-Policy: same-origin

CORP — Cross-Origin-Resource-Policy (ปลอดภัย แนะนำ)

ตามค่าเริ่มต้น รูปภาพ สคริปต์ และไฟล์อื่นๆ ของคุณสามารถถูกฝังโดยเว็บไซต์ใดก็ได้ที่ไหนก็ได้ CORP: same-origin บอกเบราว์เซอร์ให้ปฏิเสธการฝัง cross-origin ของ resource ของคุณ — เพื่อให้เว็บไซต์อื่นไม่สามารถ hotlink asset ของคุณหรือดึงมันเข้าหน้าของมัน เว็บไซต์ของคุณเองยังคงโหลด resource ของมันเองเหมือนเดิม เฉพาะเว็บไซต์ภายนอกที่ถูกบล็อก

สิ่งที่ “ดี” ดูเหมือน: Cross-Origin-Resource-Policy: same-origin (ถ้าคุณตั้งใจเผยแพร่ asset สำหรับผู้อื่นให้ฝัง — โลโก้สาธารณะ API เปิด — ดีเวลลอปเปอร์ของคุณสามารถผ่อนคลายสิ่งนี้บน response เฉพาะเหล่านั้น)

COEP — Cross-Origin-Embedder-Policy (ขั้นสูง ปกติปล่อยไว้)

COEP ทำให้ “cross-origin isolation” สมบูรณ์: รวมกับ COOP มันกำหนดให้ทุก resource ที่หน้าของคุณโหลดต้องเลือกใช้อย่างชัดเจน (ผ่าน CORS หรือ CORP) ทำถูกต้อง สิ่งนี้ปลดล็อคฟีเจอร์เบราว์เซอร์บางอย่าง (เช่น SharedArrayBuffer) และเพิ่มชั้นอื่นต่อต้านการโจมตี Spectre class แต่ เพราะมันกำหนดการเลือกใช้จากทุกอย่างที่คุณโหลด มันพร้อมทำลาย third-party tools — การวิเคราะห์ ฟอนต์ widget ที่ฝัง — ที่ไม่ได้สร้างมาเพื่อเลือกใช้ เว็บไซต์ส่วนใหญ่ไม่ต้องการฟีเจอร์ที่มันปลดล็อคและไม่ควรแบกรับความเสี่ยงการเสียหาย

สิ่งที่ “ดี” ดูเหมือน: สำหรับเว็บไซต์ที่หายากที่ต้องการมัน Cross-Origin-Embedder-Policy: credentialless — ค่าที่ปลอดภัยกว่า น่าจะไม่ทำลาย resource ภายนอกเท่า require-corp สำหรับคนอื่นทั้งหมด ขาดเป็นเรื่องปกติ และรายงานของเราจะไม่ลงโทษคุณสำหรับมัน

วิธีแก้ไข (ฟรี ~15 นาที)

ส่งให้ผู้ดูแล IT หรือเว็บดีเวลลอปเปอร์ของคุณ — การแก้ไขฟรี การเพิ่ม COOP และ CORP เป็นการตั้งค่าหนึ่งบรรทัดสองสามอย่างบนเซิร์ฟเวอร์หรือ CDN ของคุณ ไม่มีใบอนุญาตและไม่มีค่าใช้จ่ายต่อเนื่อง คำสั่งเดียวสำหรับเจ้าของคือ: ทำสองที่ปลอดภัย และอย่าเปิด COEP โดยไม่ทดสอบ

Header สองตัวที่ปลอดภัย (แนะนำสำหรับทุกคน)

Cloudflare — Rules → Transform Rules → Modify Response Headers → ตั้ง:

Nginx:

add_header Cross-Origin-Opener-Policy   "same-origin" always;
add_header Cross-Origin-Resource-Policy "same-origin" always;

Apache:

Header always set Cross-Origin-Opener-Policy   "same-origin"
Header always set Cross-Origin-Resource-Policy "same-origin"

Header ขั้นสูง (เฉพาะถ้าคุณต้องการมันโดยเฉพาะ)

อย่าเปิดสิ่งนี้โดยไม่ทดสอบใน staging ก่อน COEP สามารถทำลายการวิเคราะห์ ฟอนต์ และ widget ที่ฝัง

Cloudflare: Transform Rules → ตั้ง Cross-Origin-Embedder-Policy = credentialless

Nginx:

add_header Cross-Origin-Embedder-Policy "credentialless" always;

ใช้ credentialless แทน require-corp — มันน่าจะทำลาย resource ภายนอกน้อยกว่า ทดสอบอย่างละเอียดใน staging ดูว่าสคริปต์ third-party ฟอนต์ หรือการฝังใดหยุดโหลด ถ้าบางอย่างเสียหายและคุณไม่ต้องการฟีเจอร์ที่ COEP ปลดล็อค เพียงลบ header — ไม่มีบทลงโทษสำหรับการไม่มีมัน

ข้อผิดพลาดทั่วไป

หมายเหตุเกี่ยวกับเกรด

เพื่อให้ชัดเจนอย่างสมบูรณ์: ไม่มีสามการตรวจสอบเหล่านี้ส่งผลต่อเกรดของคุณ พวกมันถูกลงทะเบียนในระเบียบวิธีของเราว่าเป็นข้อมูล ด้วยศูนย์คะแนน และที่หายไปไม่เคยทำให้คุณสูญเสียอะไร เราแสดงพวกมันเพราะสองที่ปลอดภัยเป็นการปรับปรุงที่ถูกและแท้จริง และเพราะการเห็นภาพรวมเต็มมีประโยชน์ — ไม่ใช่เพราะมีตัวเลขที่ต้องปกป้อง ถ้าคุณไม่ทำอะไรที่นี่ เกรดของคุณเหมือนเดิม ถ้าคุณเพิ่ม COOP และ CORP คุณปิดช่องว่างจริงสองสามอย่าง (แม้จะเฉพาะกลุ่ม) ฟรี นั่นคือวิธีที่ถูกต้องในการอ่านหน้านี้: การตกแต่งที่ไม่บังคับ พร้อมกับดักที่มีป้ายชัดเจนหนึ่งอย่างที่ควรหลีกเลี่ยง

คำถามที่พบบ่อย

สิ่งเหล่านี้ไม่ส่งผลต่อเกรดของฉัน — ฉันควรยุ่งกับมันไหม?

สองในนั้นใช่ หนึ่งอาจไม่ COOP และ CORP ฟรี ใช้เวลาเพียงไม่กี่นาที และจะไม่ทำให้เว็บไซต์ของคุณเสียหาย — มันปิดเส้นทางการโจมตีจริง (แม้จะเฉพาะกลุ่ม) ดังนั้นจึงคุ้มค่าที่จะทำเป็น hygiene ราคาถูก COEP ขั้นสูงและสามารถทำลาย third-party tools ดังนั้นธุรกิจส่วนใหญ่ควรปล่อยมันไว้เว้นแต่ต้องการฟีเจอร์เบราว์เซอร์ที่มันปลดล็อค ไม่มีสามอย่างเปลี่ยนคะแนนของคุณไม่ว่าทางใด ดังนั้นไม่มีความเร่งด่วน — ถือว่าสองที่ปลอดภัยเป็นการจัดระเบียบในครั้งต่อไปที่ดีเวลลอปเปอร์ของคุณอยู่ในเว็บไซต์

ฉันไม่ใช่คนเทคนิค — นี่เป็นสิ่งที่ฉันต้องดำเนินการไหม?

ไม่ด้วยตัวเอง และไม่เร่งด่วน เพราะสิ่งเหล่านี้เป็นข้อมูล ไม่มีอะไรเลวร้ายเกิดขึ้นกับเกรดของคุณหากคุณข้ามมัน หากคุณต้องการเพิ่มสองที่ปลอดภัย ส่งส่วน 'วิธีแก้ไข' ให้ผู้ที่จัดการเว็บไซต์หรือ CDN ของคุณ — มันเป็นการตั้งค่าหนึ่งบรรทัดสองสามอย่างและการแก้ไขฟรี อย่างเดียวที่ต้องแจ้งอย่างชัดเจนคือ COEP: บอกพวกมันว่าอย่าเปิดมันโดยไม่ทดสอบ เพราะมันสามารถทำลายการวิเคราะห์และ widget ที่ฝัง

อะไรคือความแตกต่างระหว่าง header เหล่านี้และ header ที่ส่งผลต่อเกรดของฉัน?

Scored web-security header — HTTPS redirect, HSTS, Content-Security-Policy, การป้องกัน clickjacking (X-Frame-Options) และการป้องกัน MIME-sniffing — ป้องกันการโจมตีทั่วไปที่ถูกใช้ประโยชน์อย่างแพร่หลาย ดังนั้นการขาดมันทำให้เสียคะแนน สามบนหน้านี้ (COOP, CORP, COEP) เป็นการควบคุม browser-isolation ที่ใหม่กว่าและเฉพาะเจาะจงมากขึ้น เป็น practice ที่ดีแต่ยังไม่เป็นความคาดหวังพื้นฐาน ดังนั้นเราส่งรายงานโดยไม่ให้คะแนนมัน ทำ scored ones ก่อน สิ่งเหล่านี้คือการตกแต่งด้านบน

การเพิ่ม COOP หรือ CORP จะทำให้เว็บไซต์หรือการผสานรวมของพาร์ทเนอร์เสียหายไหม?

การตั้งค่าที่แนะนำ (ทั้งสอง 'same-origin') ออกแบบมาให้ปลอดภัย COOP เพียงตัดการเชื่อมต่อไปยัง window ที่เว็บไซต์ของคุณเปิดใน popup — การเรียกดูปกติ หน้าของคุณเอง และลิงก์ธรรมดาไม่ได้รับผลกระทบ CORP เพียงหยุด*เว็บไซต์อื่น*จากการฝังรูปภาพและสคริปต์ของคุณ เว็บไซต์ของคุณเองยังคงโหลด resource ของมันเองเหมือนเดิม หากคุณให้บริการ asset จริง (เช่น โลโก้สาธารณะหรือ API) ที่เว็บไซต์อื่นควรฝัง ดีเวลลอปเปอร์ของคุณสามารถใช้การตั้งค่าที่อนุญาตมากขึ้นบน response เหล่านั้น อย่างที่เสี่ยงการเสียหายจริงๆ คือ COEP — ปล่อยอันนั้นไว้เว้นแต่ทดสอบแล้ว

'hotlinking' ทำให้ฉันสูญเสียอะไรจริงๆ?

เมื่อเว็บไซต์อื่นฝังรูปภาพหรือสคริปต์ของคุณโดยตรงจากเซิร์ฟเวอร์ของคุณแทนที่จะโฮสต์สำเนาของมันเอง ผู้เข้าชมทุกรายของหน้าของมันดาวน์โหลดมันจากคุณ — บนบิลแบนด์วิดท์ของคุณ และแสดง asset ของคุณในบริบทที่คุณไม่อนุมัติ สำหรับธุรกิจขนาดเล็กมันไม่ค่อยทำให้หายนะ แต่เป็นเงินออกไปฟรี และ CORP ('same-origin') หยุดมันที่ระดับเบราว์เซอร์ มันยังปิดเส้นทางการรั่วข้อมูลที่ละเอียดอ่อนที่การโจมตีเบราว์เซอร์ขั้นสูง (Spectre class) อาศัย

'ดี' ดูเหมือนอะไรสำหรับแต่ละอย่าง?

COOP: Cross-Origin-Opener-Policy header ตั้งเป็น 'same-origin' CORP: Cross-Origin-Resource-Policy header ตั้งเป็น 'same-origin' COEP: Cross-Origin-Embedder-Policy header — และถ้าคุณตั้งมันเลย 'credentialless' เป็นค่าที่ปลอดภัยกว่า 'require-corp' รายงานของเราเพียงสังเกตว่าแต่ละอย่างมีอยู่และตั้งเป็นอะไร มันไม่เคยลงโทษคุณสำหรับที่หายไป เป้าหมายสำหรับ COOP และ CORP มีอยู่ ปล่อย COEP ขาดเว้นแต่คุณทดสอบแล้ว