HTML Academy · Pelajaran

Sandbox iframe dan Permissions Policy

Batasi konten yang disematkan dengan sandbox dan Permissions-Policy.

Pelajaran 3 dari 414 langkah

Sandbox iframe dan Permissions Policy adalah pelajaran HTML Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar HTML Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus HTML Academy mencakup 4 pelajaran total.

Mengapa Menggunakan iframe Sandbox?

Konten yang tidak tepercaya dalam iframe (widget pihak ketiga, pratinjau HTML yang dikirim pengguna, dan gim tertanam) tidak seharusnya memiliki kemampuan peramban penuh. Atribut sandbox membatasi tindakan iframe, sehingga mengurangi kerusakan jika konten tersebut ternyata berbahaya.

sandbox Kosong = Pembatasan Maksimum

<iframe sandbox src="..."> tanpa nilai menerapkan semua pembatasan: tanpa skrip, tanpa formulir, tanpa pop-up, tanpa navigasi tingkat atas, tanpa plugin, dan diperlakukan sebagai origin unik. Gunakan ini sebagai titik awal, lalu tambahkan hanya hal yang diperlukan konten tertanam.

Menambahkan Kemampuan

Token sandbox mengaktifkan kembali kemampuan tertentu: sandbox="allow-scripts allow-same-origin" mengizinkan eksekusi skrip dan akses same-origin. Setiap token melonggarkan satu pembatasan; gabungkan set minimum yang benar-benar diperlukan iframe.

<iframe sandbox="allow-scripts allow-same-origin" src="https://embed.example.com/widget"></iframe>

Token Umum

allow-scripts mengaktifkan JS. allow-forms mengaktifkan pengiriman formulir. allow-popups mengaktifkan window.open. allow-same-origin mencegah iframe diperlakukan sebagai origin unik (diperlukan untuk localStorage). allow-top-navigation mengizinkan navigasi jendela induk.

Kombinasi yang Berbahaya

Menggabungkan allow-scripts dengan allow-same-origin untuk iframe yang juga Anda host memberikan iframe akses penuh ke origin Anda — termasuk kemampuan untuk menghapus sandbox-nya sendiri. Gabungkan keduanya hanya untuk konten tepercaya; untuk konten yang tidak tepercaya, hilangkan allow-same-origin.

Kebijakan Izin

Kebijakan Izin (sebelumnya disebut Kebijakan Fitur) mengontrol API peramban mana (kamera, mikrofon, geolokasi, layar penuh, putar otomatis) yang dapat digunakan halaman dan iframe-nya. Tetapkan pada induk: Permissions-Policy: geolocation=() memblokir geolokasi di mana saja.

Pemberian Izin Per iframe

Atribut allow pada iframe menimpa kebijakan induk untuk iframe tersebut: <iframe allow="camera; microphone"> mengizinkan API tersebut di dalam iframe meskipun kebijakan bawaan induk menolaknya.

<iframe
  src="https://video-call.example.com"
  allow="camera; microphone; fullscreen"
  sandbox="allow-scripts allow-same-origin">
</iframe>

Mencantumkan Izin

Spesifikasi terus berkembang dan mencakup kamera, mikrofon, geolokasi, akselerometer, giroskop, magnetometer, pembayaran, usb, midi, layar penuh, putar otomatis, gambar-dalam-gambar, serta puluhan lainnya. Audit daftar tersebut dan tolak secara eksplisit apa pun yang tidak diperlukan halaman Anda.

Melaporkan Pelanggaran Kebijakan

Permissions-Policy melaporkan pelanggaran ke titik akhir yang dikonfigurasi, seperti report-uri milik CSP. Gunakan ini selama migrasi: aktifkan kebijakan ketat, amati hal-hal yang rusak, lalu longgarkan secara terukur untuk fitur yang sah.

Isolasi Origin

Untuk halaman sensitif, tetapkan Cross-Origin-Opener-Policy: same-origin dan Cross-Origin-Embedder-Policy: require-corp. Ini mengisolasi halaman dari jendela lintas-origin, melindunginya dari serangan pengaturan waktu bergaya Spectre dan mengaktifkan SharedArrayBuffer.

Pertahanan Berlapis

Sandbox + Permissions Policy + CSP + COOP/COEP bekerja sebagai lapisan bersama. Masing-masing melindungi dari kelas serangan yang berbeda. Penyematan konten pihak ketiga cukup berisiko sehingga tidak ada satu mitigasi yang memadai — gabungkan semuanya agar celah pada satu lapisan dapat ditangani oleh lapisan lainnya.

Pengujian

Gunakan panel Network dan panel Issues di Chrome DevTools untuk menemukan pelanggaran sandbox dan izin. Banyak pelanggaran tidak terlihat (API hanya mengembalikan undefined atau menolak promise); titik akhir pelaporan eksplisit membantu menemukannya di lingkungan produksi.

Uji Pengetahuan

Mengapa kombinasi sandbox="allow-scripts allow-same-origin" berpotensi berbahaya bagi iframe yang di-host pada origin milik Anda sendiri?

Ringkasan

Terapkan sandbox pada iframe secara bawaan dan tambahkan hanya token yang diperlukan konten. Hindari allow-scripts+allow-same-origin untuk konten yang tidak tepercaya. Gunakan Permissions Policy untuk menolak API berkuasa di seluruh situs dan atribut allow pada iframe untuk memberikan pengecualian. Gabungkan dengan CSP dan COOP/COEP untuk pertahanan berlapis.

Gratis untuk memulai

Belajar HTML dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
40
Pelajaran
159

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Sandbox iframe dan Permissions Policy” gratis?

Ya — teks lengkap “Sandbox iframe dan Permissions Policy” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus HTML Academy, upgrade ke CoddyKit PRO. Kursus HTML Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Sandbox iframe dan Permissions Policy”?

Batasi konten yang disematkan dengan sandbox dan Permissions-Policy. Kamu berlatih HTML Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai HTML Academy?

Tidak diperlukan pengalaman sebelumnya. HTML Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Sandbox iframe dan Permissions Policy” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran HTML Academy ini?

Ya. Setiap pelajaran HTML Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Content Security Policy meta http-equiv
  2. XSS melalui innerHTML dan Cara Mencegahnya
  3. Sandbox iframe dan Permissions Policy
  4. HTTPS dan Integritas Subresource
← Kembali ke HTML Academy