- Pengembang platform web Paul Kinlan mengeksplorasi potensi browser sebagai lingkungan eksekusi yang aman untuk coding agent
- Ia menyoroti bahwa browser sudah memiliki struktur sandbox yang kuat untuk menjalankan kode yang tidak tepercaya
- Untuk memverifikasinya, ia membuat demo bernama Co-do dan menguji akses file, komunikasi jaringan, serta eksekusi kode langsung di dalam browser
- Co-do memanfaatkan File System Access API, header CSP dan
<iframe sandbox>, serta WebAssembly in Web Workers
- Ini menunjukkan bahwa browser dapat berkembang menjadi lingkungan eksekusi agent AI tanpa kontainer lokal
Perspektif browser sebagai sandbox
- Paul Kinlan dari Google menilai bahwa eksekusi coding agent membutuhkan lingkungan sandbox yang kuat
- Ia menekankan bahwa selama 30 tahun terakhir, browser telah berkembang sebagai platform untuk menjalankan kode berbahaya atau tidak tepercaya secara aman
- Karakteristik ini menjadi dasar untuk memanfaatkan browser sebagai lingkungan eksekusi agent
Tiga elemen inti sandbox berbasis browser
- Kinlan mengajukan tiga elemen inti sandbox: akses sistem file, kontrol akses jaringan, dan eksekusi kode yang aman
- File System Access API menyediakan kemampuan untuk menangani file lokal di browser, dan saat ini dikenal khusus Chrome
- Akses jaringan dapat dikendalikan melalui header CSP(Content Security Policy) dan atribut
<iframe sandbox>
- Dengan WebAssembly dan Web Workers, kode dapat dijalankan dalam lingkungan yang terisolasi
Struktur dan fungsi demo Co-do
- Untuk memverifikasi gagasan Kinlan, dibuat aplikasi demo bernama Co-do
- Pengguna memilih folder lalu mengatur penyedia LLM dan API key
- Co-do berinteraksi dengan LLM melalui panggilan API yang diizinkan CSP dan menyediakan antarmuka chat untuk berinteraksi dengan file
- Struktur ini mirip dengan Claude Cowork, tetapi berjalan hanya dengan browser tanpa kontainer lokal berukuran besar
Keterbatasan <iframe sandbox> dan teknologi keamanan
- Kurangnya dokumentasi untuk
<iframe sandbox> disebut sebagai masalah utama
- Implementasinya sangat berbeda antar-browser, dan materi terkait juga terbatas
- Kinlan mengusulkan metode menerapkan aturan jaringan ke frame internal melalui teknik double-iframe
Temuan dan eksperimen tambahan
- Atribut
<input type="file" webkitdirectory> dipastikan berfungsi di Firefox, Safari, dan Chrome
- Melalui atribut ini, browser dapat melakukan akses baca-saja ke seluruh direktori
- Untuk mengujinya, dibuat demo webkitdirectory, dan rencananya akan dimanfaatkan juga pada proyek mendatang
Kesimpulan
- Browser sudah berkembang menjadi platform matang untuk isolasi keamanan dan eksekusi kode
- Kasus Co-do adalah bukti eksperimental bahwa browser dapat diperluas menjadi lingkungan eksekusi untuk agent coding AI
1 komentar
Komentar Hacker News
Ini adalah tulisan yang saya unggah di blog tautan saya. Untuk memahami konteks lengkapnya, Anda benar-benar perlu membaca artikel aslinya, The Browser is the Sandbox
Saya rasa alasan Google membuat NaCl memang berujung pada standarisasi sandbox di WebAssembly. DOM, JS, dan CSS juga berfungsi sebagai sandbox rendering. Browser harus membatasi fitur untuk menyediakan pengalaman pengguna yang terpadu.
Inilah juga alasan IE dan Edge versi lama gagal. Sandbox eksternal seperti Flash, ActiveX, Java Applet, dan Silverlight semuanya telah hilang, dan dengan matangnya asm.js serta WebAssembly, web menjadi jauh lebih rapi. Sebagai catatan, ActionScript milik Flash juga memengaruhi desain ECMAScript dan TypeScript
Saya juga terkejut saat pertama kali melihat atribut
webkitdirectory. Saya sudah bertahun-tahun membuat web app, tetapi melewatkan ini. Sandbox browser adalah model keamanan yang telah teruji oleh miliaran orang yang mengklik tautan mencurigakan.Ini pendekatan yang jauh lebih matang daripada menyalakan container baru setiap saat. Namun browser punya keterbatasan karena tidak bisa melakukan system call, menjalankan binary, atau mengakses hardware. Untuk AI coding itu sudah cukup, tetapi untuk beberapa pekerjaan memang ada batasnya
Menarik bahwa systemd atau sistem hak akses pengguna Linux hampir tidak pernah disebut dalam diskusi sandbox. Padahal keduanya juga cukup kuat dan menyediakan isolasi berbiaya rendah
File System Access API adalah titik balik besar dalam perkembangan web. Di co-do.xyz, Anda bisa memilih direktori agar AI dapat menangani file di dalamnya dengan aman. Berkat API ini, web app benar-benar mulai mapan sebagai alat produktivitas
Eksekusi berbasis browser memang menarik, tetapi sebagian besar aplikasi bisnis nyata telah bergeser ke model berpusat pada cloud karena maintainability, keamanan, dan akses data. Eksekusi lokal bagus untuk produktivitas pribadi, tetapi punya keterbatasan untuk aplikasi arus utama. Inilah juga alasan fitur otomasi desktop seperti AppleScript, COM, dan DDE dari masa lalu menghilang
Saya ingin memperkenalkan dua hal lagi yang bisa dilakukan di browser
Secara teori, Anda dapat mengimplementasikan sistem agen yang cukup lengkap hanya dengan satu URL
Dulu di Chrome, kita bisa meminta izin baca/tulis direktori lewat File System Access API, tetapi saat tab di-refresh, izinnya hilang. Saya penasaran apakah sekarang sudah diperbaiki
Pendekatan ini hanya melakukan sandbox pada file system. Namun orang ingin menghubungkannya juga ke email, kalender, chat, source code, data keuangan, dan sebagainya. Keamanan file system hanyalah permulaan; keamanan seluruh ekosistem data masih menjadi tantangan
Saya penasaran dengan batasan pendekatan ini. Apakah mungkin mengimplementasikan Gemini CLI di browser sebagai versi UX yang ditingkatkan? Bisakah ia juga terhubung dengan tool lokal?