Defaults.Exposed

Defaults.ExposedPembaikan › Pengepala pengasingan merentas-asal (COOP / CORP / COEP)

Cara memperbaiki Pengepala pengasingan merentas-asal (COOP / CORP / COEP)

Tiga arahan pelayar pilihan yang mengawal bagaimana laman web lain dibenarkan untuk berinteraksi dengan laman anda — membukanya dalam popup, menanam imej dan skrip anda, atau menarik sumber anda ke dalam halaman mereka sendiri. Mereka adalah pengerasan moden, bukan kemestian asas, dan dalam pemarkahan kami mereka adalah maklumat: tiada yang hilang tidak menurunkan gred anda. Tetapi dua yang selamat menutup jurang pancingan data popup yang senyap dan kecurian lebar jalur, dan pasukan IT pembeli yang teliti akan perasan apabila mereka hadir.

Kesimpulan untuk perniagaan anda: Dua daripada tiga pengepala ini menutup pancingan data popup yang canggih dan menghentikan laman lain daripada menghubung terus imej dan skrip anda (yang mengenakan kos lebar jalur kepada anda dan boleh membocorkan data). Mereka percuma, mengambil masa pembangun kira-kira 15 minit, dan tidak akan memutuskan apa-apa. Yang ketiga adalah lanjutan dan boleh memutuskan analitik, fon dan embed — kebanyakan perniagaan harus membiarkannya dimatikan. Tiada satu pun daripada mereka mempengaruhi gred anda, jadi anggap mereka sebagai kemasan, bukan kepanikan: lakukan dua yang selamat, langkau yang berisiko kecuali anda khusus memerlukannya.

Apakah kos yang boleh timbul

Mengapa ia penting. Ini adalah pengepala pengerasan pelayar yang memandang ke hadapan. Dalam metodologi kami ketiga-tiga adalah maklumat — mereka didaftarkan dengan sifar mata dan tidak pernah menggerakkan gred anda — kerana mereka adalah kawalan lanjutan yang laman boleh sah beroperasi tanpanya, dan salah satunya boleh mendatangkan bahaya jika digunakan dengan salah. Kami melaporkannya supaya anda boleh melihat di mana anda berdiri. Dua yang selamat (COOP dan CORP) benar-benar berbaloi ditambah: percuma, pantas, dan mereka menutup jurang pancingan data popup dan kecurian sumber yang nyata tanpa memutuskan apa-apa.

Apa ini, dalam bahasa mudah

Apabila seseorang melawati laman web anda, pelayar mereka tidak hanya memuatkan halaman anda secara berasingan — ia juga memutuskan bagaimana laman web lain dibenarkan untuk berinteraksi dengan laman anda. Bolehkah laman lain membuka laman anda dalam popup dan mengekalkannya? Bolehkah laman lain mencapai merentasi dan menanam imej dan skrip anda dalam halaman mereka sendiri? Bolehkah laman anda sendiri menggunakan ciri pelayar tertentu yang berkuasa dan terkunci?

Tiga pengepala ini adalah arahan pendek dan tidak kelihatan yang laman web anda hantar kepada pelayar setiap pengunjung untuk menjawab tepat soalan-soalan itu. Mereka dikenali dengan inisial mereka:

Dua daripada mereka (COOP dan CORP) selamat untuk ditambah dan benar-benar berguna. Yang ketiga (COEP) adalah lanjutan dan boleh memutuskan perkara jika dihidupkan dengan cuai.

Perkara paling penting yang perlu diketahui dari awal: dalam pemarkahan kami, ketiga-tiga adalah maklumat. Mereka tidak mempengaruhi gred anda. Yang tiada tidak mengenakan kos apa-apa kepada anda. Kami melaporkannya supaya anda boleh melihat di mana anda berdiri dan mengemas kini kemenangan mudah — bukan supaya anda panik tentang nombor.

Apa yang ini boleh koskan anda

Ini adalah risiko niche, bukan risiko utama — tetapi ia adalah nyata, dan pembetulan adalah percuma.

Apa yang setiap satu sebenarnya

COOP — Cross-Origin-Opener-Policy (selamat, disyorkan)

Apabila laman web lain membuka laman anda menggunakan popup atau window.open, kedua-dua tetingkap biasanya boleh mengekalkan rujukan kepada satu sama lain. Pautan itu boleh disalahgunakan: pembuka boleh memanipulasi atau menghala semula tetingkap anda, membaca serpihan URL-nya, dan mementaskan pancingan data yang meyakinkan menggunakan domain sebenar anda. COOP: same-origin memutuskan hubungan itu — tetingkap anda menjadi terpencil dari apa sahaja yang membukanya merentasi asal. Penyemakan imbas biasa, pautan dalaman anda sendiri, dan navigasi biasa tidak terjejas sepenuhnya.

Apa yang “baik” kelihatan: Cross-Origin-Opener-Policy: same-origin.

CORP — Cross-Origin-Resource-Policy (selamat, disyorkan)

Secara lalai, imej, skrip dan fail lain anda boleh ditanam oleh mana-mana laman di mana-mana. CORP: same-origin memberitahu pelayar untuk menolak penghubungan merentas-asal sumber anda — jadi laman lain tidak boleh menghubung terus aset anda atau menariknya ke dalam halaman mereka. Laman anda sendiri masih memuatkan sumber-sumbernya sendiri sama seperti sebelumnya; hanya laman luar yang disekat.

Apa yang “baik” kelihatan: Cross-Origin-Resource-Policy: same-origin. (Jika anda sengaja menerbitkan aset untuk orang lain benam — logo awam, API terbuka — pembangun anda boleh melonggarkan ini pada respons khusus tersebut.)

COEP — Cross-Origin-Embedder-Policy (lanjutan, biasanya biarkan dimatikan)

COEP melengkapkan “pengasingan merentas-asal”: digabungkan dengan COOP, ia memerlukan bahawa setiap sumber yang halaman anda muatkan secara eksplisit mendaftar masuk (melalui CORS atau CORP). Dilakukan dengan betul, ini membuka ciri pelayar tertentu yang berkuasa (seperti SharedArrayBuffer) dan menambah lapisan lain terhadap serangan kelas Spectre. Tetapi kerana ia menuntut pendaftaran masuk dari semua yang anda muatkan, ia dengan mudah memutuskan alat pihak ketiga — analitik, fon, widget terbenam — yang tidak dibina untuk mendaftar masuk. Kebanyakan laman web tidak memerlukan ciri yang dibukanya dan tidak sepatutnya menanggung risiko pemecahan.

Apa yang “baik” kelihatan: untuk laman yang jarang memerlukannya, Cross-Origin-Embedder-Policy: credentialless — nilai yang lebih selamat, kurang berkemungkinan memutuskan sumber luar daripada require-corp. Bagi semua orang, tiada adalah baik, dan laporan kami tidak akan menghukum anda kerananya.

Cara membetulkannya (percuma, ~15 minit)

Serahkan ini kepada orang IT atau pembangun web anda — pembetulan adalah percuma. Menambah COOP dan CORP adalah beberapa tetapan satu baris pada pelayan atau CDN anda; tiada lesen dan tiada kos berterusan. Satu-satunya arahan untuk pemilik adalah: lakukan dua yang selamat, dan jangan hidupkan COEP tanpa menguji.

Ini adalah pengepala respons, ditetapkan di mana sahaja respons laman anda dihasilkan — paling mudah di CDN anda (mis. Cloudflare) jika anda ada, sebaliknya dalam konfigurasi pelayan web anda.

Dua pengepala yang selamat (disyorkan untuk semua orang)

Cloudflare — Rules → Transform Rules → Modify Response Headers → Set:

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"

Ini selamat untuk ditambah dan tidak akan memutuskan fungsi biasa. Selepas menggunakan, muatkan beberapa halaman dan sahkan laman berkelakuan sama seperti sebelumnya (ia sepatutnya).

Pengepala lanjutan (hanya jika anda khusus memerlukannya)

Jangan hidupkan ini tanpa menguji dalam pementasan dahulu. COEP boleh memutuskan analitik, fon dan widget terbenam.

Cloudflare: Transform Rules → Set Cross-Origin-Embedder-Policy = credentialless.

Nginx:

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

Gunakan credentialless dan bukannya require-corp — ia kurang berkemungkinan memutuskan sumber luar. Uji dengan teliti dalam pementasan; perhatikan sebarang skrip pihak ketiga, fon atau embed yang berhenti memuatkan. Jika sesuatu rosak dan anda sebenarnya tidak memerlukan ciri yang COEP buka, hanya alih pengepala — tiada penalti kerana tidak memilikinya.

Nota platform

Kesilapan biasa

Nota tentang gred

Untuk jelas sepenuhnya: tiada satu pun daripada tiga semakan ini mempengaruhi gred anda. Mereka didaftarkan dalam metodologi kami sebagai maklumat, dengan sifar mata, dan yang tiada tidak pernah mengenakan kos apa-apa kepada anda. Kami menampakkan mereka kerana dua yang selamat adalah penambahbaikan yang murah dan tulen dan kerana melihat gambaran penuh adalah berguna — bukan kerana ada nombor untuk dipertahankan. Jika anda tidak melakukan apa-apa di sini, gred anda adalah tepat sama. Jika anda menambah COOP dan CORP, anda telah menutup beberapa jurang yang nyata (walaupun niche) secara percuma. Itulah cara yang betul untuk memikirkan halaman ini: kemasan pilihan, dengan satu perangkap yang dilabelkan dengan jelas untuk dielakkan.

Soalan Lazim

Ini tidak mempengaruhi gred saya — adakah saya perlu ambil peduli?

Dua daripada mereka, ya; satu, mungkin tidak. COOP dan CORP adalah percuma, mengambil masa beberapa minit, dan tidak akan memutuskan laman anda — mereka menutup laluan serangan yang nyata (walaupun niche), jadi mereka berbaloi dilakukan sebagai kebersihan murah. COEP adalah lanjutan dan boleh memutuskan alat pihak ketiga, jadi kebanyakan perniagaan harus membiarkannya dimatikan kecuali mereka khusus memerlukan ciri pelayar yang dibukanya. Tiada satu pun daripada tiga mengubah skor anda sama ada cara, jadi tiada kemendesakan — anggap dua yang selamat sebagai kemas-kini lain kali pembangun anda berada dalam laman.

Saya bukan orang teknikal — adakah ini perlu saya tindakan?

Tidak secara peribadi, dan tidak segera. Kerana ini adalah maklumat, tiada yang buruk berlaku pada gred anda jika anda langkauinya. Jika anda ingin menambah dua yang selamat, serahkan bahagian 'Cara membetulkannya' kepada sesiapa yang menguruskan laman web atau CDN anda — ia adalah beberapa tetapan satu baris dan pembetulan adalah percuma. Satu-satunya yang perlu ditandakan secara eksplisit adalah COEP: beritahu mereka untuk tidak menghidupkannya tanpa menguji, kerana ia boleh memutuskan analitik dan widget terbenam.

Apa perbezaan antara ini dan pengepala yang mempengaruhi gred saya?

Pengepala keselamatan web yang dinilai — pengalihan HTTPS, HSTS, Content-Security-Policy, perlindungan clickjacking (X-Frame-Options), dan perlindungan penghirupan MIME — mempertahankan terhadap serangan biasa yang dieksploitasi secara meluas, jadi tiada yang merugikan mata. Tiga pada halaman ini (COOP, CORP, COEP) adalah kawalan pengasingan pelayar yang lebih baru dan lebih khusus. Mereka adalah amalan baik tetapi belum lagi jangkaan garis dasar, jadi kami melaporkannya tanpa memarkahnya. Lakukan yang dinilai dahulu; ini adalah kemasan di atas.

Adakah menambah COOP atau CORP akan memutuskan laman web atau integrasi rakan kongsi saya?

Tetapan yang disyorkan (kedua-duanya 'same-origin') direka untuk selamat. COOP hanya memutuskan pautan ke tetingkap yang laman anda buka dalam popup — penyemakan imbas biasa, halaman anda sendiri, dan pautan biasa tidak terjejas. CORP hanya menghentikan laman *lain* daripada menanam imej dan skrip anda; laman anda sendiri memuatkan sumber-sumbernya sendiri sama seperti sebelumnya. Jika anda sebenarnya menyajikan aset (seperti logo awam atau API) yang laman lain sepatutnya benam, pembangun anda boleh menggunakan tetapan yang lebih permisif pada respons khusus tersebut. Yang benar-benar berisiko pecah adalah COEP — jauhkan yang itu kecuali diuji.

Apa yang 'menghubung terus' sebenarnya mengenakan kos saya?

Apabila laman lain menanam imej atau skrip anda terus dari pelayan anda daripada mengehoskan salinan mereka sendiri, setiap pengunjung ke halaman mereka memuat turunnya dari anda — pada bil lebar jalur anda, dan menunjukkan aset anda dalam konteks yang anda tidak luluskan. Untuk perniagaan kecil ia jarang malapetaka, tetapi ia wang percuma keluar, dan CORP ('same-origin') menghentikannya pada peringkat pelayar. Ia juga menutup laluan kebocoran data yang halus yang serangan pelayar lanjutan (kelas Spectre) bergantung padanya.

Apa yang 'baik' kelihatan untuk setiap satu ini?

COOP: pengepala Cross-Origin-Opener-Policy ditetapkan kepada 'same-origin'. CORP: pengepala Cross-Origin-Resource-Policy ditetapkan kepada 'same-origin'. COEP: pengepala Cross-Origin-Embedder-Policy — dan jika anda menetapkannya langsung, 'credentialless' adalah nilai yang lebih selamat daripada 'require-corp'. Laporan kami hanya mencatat sama ada setiap ada dan apa nilainya; ia tidak pernah menghukum anda kerana tiada. Sasarkan COOP dan CORP hadir; biarkan COEP tiada kecuali anda telah mengujinya.