Keamanan Siber

Menguak Opsi Credentials Fetch API untuk Keamanan Autentikasi Web

Ringkasan

  • Pengembang web wajib memahami opsi credentials Fetch API yang mengatur penyertaan cookie dan autentikasi dalam permintaan HTTP.
  • Kesalahan konfigurasi berpotensi membahayakan keamanan sesi.

Pengaturan credentials dalam Fetch API menentukan apakah peramban (browser) akan menyertakan informasi otentikasi saat mengirim permintaan ke server. Informasi tersebut mencakup cookie, kredensial HTTP Authentication, hingga sertifikat klien TLS yang menjadi tulang punggung keamanan sesi pengguna. Standar web modern menetapkan tiga mode utama yang wajib dipahami setiap insinyur perangkat lunak, yakni omit, same-origin, dan include.

Mode pertama, omit, secara tegas melarang browser mengirimkan kredensial apa pun ke tujuan. Permintaan yang dikirim dengan konfigurasi ini akan diperlakukan sebagai anonim, meski pengguna sebenarnya sedang dalam status login. Pendekatan ini umum dipakai saat sebuah aplikasi mengakses aset atau antarmuka pemrograman aplikasi (API) publik yang sama sekali tidak membutuhkan identitas pengguna.

Secara bawaan, Fetch API berjalan dengan mode same-origin apabila pengembang tidak menuliskan parameter credentials secara eksplisit di dalam kode. Mode ini menjadi pelindung awal yang wajar karena hanya mengizinkan penyertaan kredensial jika alamat pengirim dan tujuan berada dalam satu origin yang sama. Sebagai ilustrasi, permintaan dari https://app.example.com menuju https://app.example.com/api akan membawa cookie, tetapi mekanisme tersebut otomatis terputus jika tujuannya bergeser ke https://api.example.com.

Kebijakan same-origin merupakan fondasi keamanan browser yang dirancang untuk membatasi risiko kebocoran data antarsitus sejak awal perkembangan web. Namun, arsitektur aplikasi masa kini banyak yang terdistribusi secara longgar (loosely coupled). Layanan frontend dan backend kerap ditempatkan pada subdomain atau domain yang berbeda untuk alasan skalabilitas dan performa. Kondisi ini memaksa pengembang mencari celah agar autentikasi tetap berjalan mulus di lintas origin.

Di sinilah mode include memainkan peran krusial bagi integrasi sistem. Mode ini mengizinkan browser mempertimbangkan penyertaan kredensial untuk permintaan lintas origin (cross-origin). Perlu ditekankan bahwa include tidak serta-merta memaksa semua cookie dikirim ke server tujuan. Browser akan menyeleksi berdasarkan atribut keamanan cookie itu sendiri, seperti Domain, Path, SameSite, dan Secure. Hanya cookie yang memenuhi seluruh aturan keamanan tersebut yang layak dibawa dalam sebuah request.

Bagi ekosistem teknologi di Indonesia, pemahaman mendalam tentang mekanisme ini sangat vital mengingat pesatnya pertumbuhan perusahaan rintisan (startup) berbasis web. Banyak startup lokal mengadopsi arsitektur mikroservis di mana API utama terpisah secara fisik dari antarmuka pengguna. Jika konfigurasi credentials salah kaprah, pengguna domestik bisa terus-menerus mengalami kegagalan proses login atau sesi yang mudah kedaluwarsa di tengah aktivitas.

Risiko keamanan siber juga mengintai apabila parameter ini diabaikan oleh tim engineering. Pengembang yang asal menyetel mode include tanpa memahami protokol CORS (Cross-Origin Resource Sharing) berisiko membuka celah pencurian data sesi. Di Indonesia, regulasi perlindungan data pribadi (UU PDP) yang baru berlaku menuntut pengelola platform lebih disiplin menjaga token autentikasi pengguna dari penyalahgunaan lintas situs yang tidak sah.

Perbandingan dengan praktik pengembangan masa lalu cukup mencolok. Dahulu, pengembang sering berlindung di balik library pihak ketiga yang menutupi kompleksitas Fetch API dari pandangan langsung. Kini, dengan standar web yang semakin ketat terkait privasi, seperti pembatasan cookie pihak ketiga di peramban populer, penguasaan native API menjadi keharusan bagi engineer Tanah Air yang profesional.

Pakar keamanan aplikasi menekankan bahwa mode include sekadar memberi izin kepada browser untuk mempertimbangkan cookie, bukan menginstruksikannya secara paksa. "Browser mengevaluasi atribut keamanan cookie sebelum memutuskan untuk mengirimkannya bersama permintaan lintas origin," demikian prinsip dasar yang harus dipegang dalam pengembangan sistem autentikasi modern agar tidak terjadi kebocoran.

Sementara itu, keterkaitan credentials dengan kebijakan CORS di sisi server membutuhkan perhatian ganda dari administrator sistem. Server harus membalas permintaan dengan header Access-Control-Allow-Credentials: true. Lebih penting lagi, header Access-Control-Allow-Origin tidak boleh menggunakan karakter wildcard (*), melainkan harus mencantumkan origin pemohon secara spesifik. Tanpa keselarasan header ini, JavaScript di sisi klien tetap akan diblokir mengakses respons meski cookie berhasil dikirim dan server memproses data tersebut.

Ke depan, tren pemisahan domain frontend dan backend akan semakin masif seiring adopsi komputasi tepi (edge computing) dan arsitektur serverless di Indonesia. Pengembang dituntut untuk merancang strategi autentikasi berlapis yang tidak hanya mengandalkan mode include, tetapi juga pengelolaan atribut cookie yang presisi dan terukur.

Standar keamanan web global diprediksi akan terus mengetat seiring kesadaran privasi pengguna. Penguasaan opsi credentials pada Fetch API bukan lagi sekadar keahlian teknis tingkat dasar, melainkan kompetensi wajib untuk membangun aplikasi web yang tangguh, aman, dan patuh regulasi di era digital saat ini.

Mengapa Ini Penting

Pemahaman mendalam tentang opsi credentials Fetch API menjadi krusial bagi pengembang di Indonesia karena banyaknya adopsi arsitektur mikroservis yang memisahkan frontend dan backend. Kesalahan konfigurasi tidak hanya merusak pengalaman pengguna, tetapi juga berpotensi melanggar mandat perlindungan data pada UU PDP yang berlaku. Di tengah tren pembatasan cookie pihak ketiga oleh peramban global, penguasaan native API ini menjamin aplikasi lokal tetap aman dan kompetitif. Kompetensi ini melindungi ekosistem digital domestik dari ancaman pembajakan sesi lintas situs.

Sumber Asli
Dev
Tanggal
14 Juli 2026
Waktu Baca
5 menit