Nah, ketika Anda membuka situs web, situs web dapat mengarahkan browser untuk melakukan segala macam hal atas namanya. Dalam kasus yang paling sederhana, itu hanya akan mengirim teks dan gambar untuk ditampilkan, tetapi juga dapat mengirim program kecil yang akan dijalankan browser (dalam JavaScript, browser yang memiliki built-in, atau menggunakan plugin browser seperti Java atau Flash) .
Pada prinsipnya, terinfeksi hanya dengan mengunjungi situs web seharusnya tidak mungkin:
Sementara browser akan menjalankan program atas nama situs web yang Anda kunjungi, program ini dibatasi dengan hati-hati sehingga mereka hanya dapat melakukan hal-hal yang "tidak berbahaya". Dari JavaScript, misalnya Anda dapat mengubah halaman milik JavaScript (karena keduanya berasal dari situs web yang sama, tidak ada salahnya), tetapi JavaScript mungkin tidak mengubah halaman dari situs web yang berbeda (sehingga situs yang curang tidak dapat mengubah Anda tampilan home banking), dan mungkin tidak secara langsung mengakses file di komputer Anda.
Pembatasan serupa ada untuk sebagian besar plugin (setidaknya untuk Java dan Flash). Ini biasanya disebut sebagai sandboxing , karena kode tersebut pada dasarnya berada di dalam kotaknya sendiri, terisolasi dari komputer yang digunakan untuk menjalankannya. Secara khusus, ia tidak dapat membaca file di hard disk Anda, atau memulai program untuk Anda, seperti program "biasa" yang berjalan di komputer Anda.
Sekarang, masalahnya adalah: sementara pada prinsipnya Anda aman, dalam praktiknya Anda mungkin tidak. Alasannya adalah bahwa sistem kotak pasir, seperti semua program, memiliki bug. Terkadang bug ini memungkinkan suatu program untuk "memecahkan" kotak pasir dan menipu peramban atau plugin untuk melakukan hal-hal yang seharusnya tidak boleh dilakukan. Trik ini bisa sangat rumit.
Contoh:
- Seperti program biasa, implementasi browser atau plugin dapat memiliki buffer overflows, yang dapat memungkinkan situs web untuk menjalankan kode yang dibuat khusus dengan mengirimkannya ke browser sebagai input.
- Ada kerentanan dalam versi lama plugin Java milik Sun sehubungan dengan kotak pasir. Kotak pasir melarang (dan masih melarang) akses ke semua fungsi Java yang dapat memungkinkan program melakukan kerusakan, seperti membaca atau menghapus file lokal. Namun, sementara kotak pasir tidak benar memblokir akses ke fungsi-fungsi ini dari applet Java, browser juga memungkinkan akses tidak langsung ke fungsi-fungsi ini dari JavaScript (melalui teknik yang disebut "refleksi"). "Pintu belakang" ini belum dipertimbangkan secara memadai oleh pengembang, dan diizinkan untuk melewati pembatasan kotak pasir, memecahkan kotak pasir. Lihat https://klikki.fi/adv/javaplugin.html untuk detailnya.
Sayangnya, ada beberapa kerentanan di kotak pasir JavaScript, Java dan Flash, hanya untuk beberapa nama. Ini masih semacam perlombaan antara peretas jahat yang mendeteksi kerentanan ini untuk mengeksploitasi mereka, dan peretas dan pengembang yang baik yang mendeteksi dan memperbaikinya. Biasanya, mereka diperbaiki dengan cepat, tetapi kadang-kadang ada jendela kerentanan.
BTW: Kotak pasir adalah alasan mengapa beberapa applet Java memunculkan peringatan "Apakah Anda mempercayai applet ini" saat peluncuran: Applet ini meminta Anda untuk mengeluarkannya dari kotak pasir mereka dan memberi mereka akses ke komputer Anda. Ini kadang-kadang diperlukan, tetapi hanya harus diberikan dengan alasan yang bagus.
PS: Alasan mengapa ActiveX (setidaknya versi awal) begitu tidak aman adalah karena ActiveX tidak menggunakan kotak pasir. Setiap kode ActiveX dari halaman web memiliki akses penuh ke sistem Anda. Agar adil, ini (sebagian) diperbaiki dalam versi yang lebih baru.