Digital Transformation

Trusted Types

Vito Atmo
Vito Atmo·28 April 2026·0 kali dibaca·2 min baca

TL;DR: Trusted Types adalah API browser yang dipasang lewat header Content Security Policy untuk memaksa semua sink berbahaya seperti innerHTML, eval, dan setAttribute('src') hanya menerima objek yang sudah divalidasi melalui policy. Hasilnya, XSS berbasis DOM hampir tidak bisa terjadi tanpa terdeteksi saat development.

Apa itu Trusted Types?

Trusted Types adalah standar web yang diinisiasi Google dan kini didukung Chromium serta sebagian Firefox. Tujuannya satu, menutup vektor XSS yang paling sulit di-audit, yaitu DOM-based XSS, dengan cara memaksa setiap string yang masuk ke sink berbahaya melewati header CSP policy yang eksplisit.

Anggap seperti pemeriksaan dokumen di gerbang. String biasa tidak boleh masuk ke element.innerHTML. Yang boleh masuk hanya objek TrustedHTML yang sudah dibuat lewat policy yang Anda definisikan sendiri. Jika ada kode pihak ketiga atau bug yang mencoba mem-bypass, browser melempar error yang langsung kelihatan di console.

Cara Kerja

KomponenFungsi
Header CSPrequire-trusted-types-for 'script' mengaktifkan enforcement di seluruh halaman
Trusted Types PolicyFungsi JavaScript yang melakukan sanitasi dan mengembalikan objek TrustedHTML, TrustedScript, atau TrustedScriptURL
Sink berbahayainnerHTML, outerHTML, document.write, eval, setTimeout(string), setAttribute untuk src/href
Report modeContent-Security-Policy-Report-Only memungkinkan rollout bertahap tanpa breaking

Alur tipikal: developer membuat policy bernama default atau policy spesifik per fitur, semua string HTML harus dilewatkan ke policy.createHTML(input) dulu sebelum masuk ke innerHTML.

Kenapa Penting?

Untuk tim marketing dan developer Indonesia yang banyak memasang script pihak ketiga seperti chatbot, livechat, atau pixel ads, XSS (Cross-Site Scripting) berbasis DOM adalah risiko nyata. Trusted Types memberi tiga manfaat. Pertama, satu pelanggaran kecil langsung kelihatan di console saat staging. Kedua, audit keamanan jadi sangat fokus, hanya policy yang perlu di-review. Ketiga, sertifikasi compliance seperti ISO 27001 atau audit perbankan jauh lebih mudah karena kontrol tertulis di kode.

Pertanyaan Umum

Apakah Trusted Types memecahkan semua XSS?

Tidak. Trusted Types hanya menutup DOM-based XSS. Reflected dan stored XSS tetap perlu sanitasi server-side dan validasi input.

Berapa effort untuk migrasi?

Untuk aplikasi modern berbasis React atau Vue, biasanya 1 hingga 3 minggu karena framework sudah aman by default. Untuk aplikasi legacy dengan banyak innerHTML manual, bisa 2 hingga 3 bulan dengan rollout report-only dulu.

Bagikan