Untuk mempertahankan diri dari serangan, developer perlu memitigasi kerentanan dan menambahkan fitur keamanan ke aplikasi. Untungnya, di web, browser menyediakan banyak fitur keamanan. Beberapa setelan tersedia bagi developer untuk ikut serta, dan beberapa diaktifkan secara default untuk melindungi pengguna.
Gagasan mengenai "sandbox"
Browser web modern dibuat berdasarkan ide "sandbox". Sandbox adalah mekanisme keamanan yang digunakan untuk menjalankan aplikasi di lingkungan terbatas. Sama seperti sandbox fisik di taman bermain tempat anak-anak dapat membuat apa pun yang mereka inginkan dalam batas tanpa membuat kekacauan di tempat lain, kode aplikasi memiliki kebebasan untuk mengeksekusi dalam lingkungan yang dibatasi. Misalnya, JavaScript dapat menambahkan dan mengubah elemen di halaman, tetapi mungkin dibatasi agar tidak dapat mengakses file JSON eksternal. Hal ini terjadi karena fitur sandbox yang disebut origin sama
Mengapa sandbox diperlukan?
Setiap hari, pengguna web mendownload kode arbitrer dan menjalankannya di komputer atau ponsel beberapa kali. Jika seseorang berkata "Hei! Download dan jalankan aplikasi ini!", Anda mungkin berhenti sejenak untuk memikirkan apakah aplikasi tersebut berasal dari sumber tepercaya, membaca vendor aplikasi, atau memeriksa ulasan dengan cermat. Bagaimana jika seseorang mengirimi Anda URL yang bertuliskan "lihat postingan blog ini"? Anda mungkin akan mengkliknya tanpa mengajukan pertanyaan seperti "Jenis JavaScript apa yang akan didownload situs ini?".
Sandbox browser adalah fitur utama yang membuat penjelajahan di web tanpa hambatan dengan menjadikannya lebih aman saat menjalankan kode arbitrer.
Didesain agar aman
Jika browser melakukan sandbox setiap aplikasi web, haruskah kita memperhatikan keamanan? Tentu saja ya!
Pertama-tama, fitur sandbox bukanlah perisai yang sempurna. Meskipun engineer browser telah bekerja keras, browser mungkin memiliki kerentanan dan penyerang selalu mencoba mengabaikan sandbox (seperti dengan Spectre Attack).
{i>Sandbox<i} terkadang dapat menjadi cara untuk menciptakan pengalaman web yang luar biasa. Misalnya, browser dapat memblokir permintaan pengambilan ke gambar yang dihosting di domain lain. Anda dapat berbagi resource di domain yang berbeda dengan mengaktifkan Cross-Origin Resource Sharing (CORS), tetapi jika tidak dilakukan dengan hati-hati, Anda dapat mengekspos resource ke orang lain di web. Pada dasarnya, mengurungkan sandbox.
Penutup
Pengalaman web yang aman hanya dapat dicapai jika keamanan diintegrasikan ke dalam desain aplikasi Anda, dan desain yang kuat dimulai dengan memahami fitur yang ada. Dua panduan berikutnya akan membahas secara mendalam CORS dan kebijakan origin yang sama.