ब्राउज़र ही sandbox है
(simonwillison.net)- वेब प्लेटफ़ॉर्म डेवलपर Paul Kinlan ने coding agents के लिए एक सुरक्षित execution environment के रूप में ब्राउज़र की संभावनाओं की पड़ताल की
- उनका कहना है कि ब्राउज़र में पहले से ही untrusted code चलाने के लिए एक मज़बूत sandbox architecture मौजूद है
- इसे परखने के लिए उन्होंने Co-do नाम का एक डेमो बनाया, जिसमें ब्राउज़र के भीतर file access, network communication और code execution—तीनों का प्रयोग किया गया
- Co-do में File System Access API, CSP headers और
<iframe sandbox>, और WebAssembly in Web Workers का उपयोग किया गया - यह दिखाने वाला एक उदाहरण है कि ब्राउज़र local containers के बिना भी AI agent runtime के रूप में विकसित हो सकता है
ब्राउज़र को sandbox के रूप में देखने का नज़रिया
- Google के Paul Kinlan का मानना है कि coding agents को चलाने के लिए एक मज़बूत sandbox environment चाहिए
- उन्होंने ज़ोर देकर कहा कि ब्राउज़र पिछले 30 वर्षों में malicious code और untrusted code को सुरक्षित रूप से चलाने के लिए विकसित हुआ प्लेटफ़ॉर्म है
- यही विशेषता ब्राउज़र को agent runtime के रूप में इस्तेमाल करने का आधार बनती है
ब्राउज़र-आधारित sandbox के तीन मुख्य तत्व
- Kinlan ने sandbox के तीन प्रमुख तत्व बताए: file system access, network access control, और safe code execution
- File System Access API ब्राउज़र में local files को संभालने की सुविधा देता है, और फिलहाल इसे Chrome-only माना जाता है
- CSP(Content Security Policy) headers और
<iframe sandbox>attribute के ज़रिए network access को नियंत्रित किया जा सकता है - WebAssembly और Web Workers का उपयोग करके isolated environment में code चलाया जा सकता है
Co-do डेमो की संरचना और फीचर
- Kinlan के विचार को सत्यापित करने के लिए Co-do नाम का एक डेमो application बनाया गया
- उपयोगकर्ता एक folder चुनता है और LLM provider तथा API key सेट करता है
- Co-do CSP-allowed API calls के ज़रिए LLM के साथ इंटरैक्ट करता है और files से बातचीत करने के लिए एक chat interface प्रदान करता है
- यह संरचना Claude Cowork जैसी है, लेकिन बड़े local container के बिना सिर्फ ब्राउज़र में चलती है
<iframe sandbox> और security technology की सीमाएँ
<iframe sandbox>की कमज़ोर documentation को एक बड़ी समस्या बताया गया- अलग-अलग browsers में implementation का अंतर बड़ा है, और संबंधित सामग्री भी कम उपलब्ध है
- Kinlan ने double-iframe तकनीक के ज़रिए inner frame पर network rules लागू करने का तरीका सुझाया
अतिरिक्त खोजें और प्रयोग
- यह पुष्टि हुई कि
<input type="file" webkitdirectory>attribute Firefox, Safari, Chrome—तीनों में काम करता है- इसके ज़रिए ब्राउज़र पूरी directory पर read-only access कर सकता है
- इसे परखने के लिए webkitdirectory demo बनाया गया, और आगे की परियोजनाओं में भी इसका उपयोग करने की योजना है
निष्कर्ष
- ब्राउज़र पहले ही security isolation और code execution के लिए एक परिपक्व प्लेटफ़ॉर्म बन चुका है
- Co-do का उदाहरण इस बात का प्रायोगिक प्रमाण है कि ब्राउज़र AI coding agents के execution environment के रूप में विस्तृत हो सकता है
1 टिप्पणियां
Hacker News की राय
यह मेरी लिंक ब्लॉग पर डाली गई पोस्ट है। पूरे संदर्भ को समझने के लिए मूल लेख The Browser is the Sandbox ज़रूर पढ़ना चाहिए
मेरा मानना है कि Google ने NaCl इसी वजह से बनाया था, और वही आगे चलकर WebAssembly के sandbox standardization तक पहुँचा। DOM, JS, CSS भी rendering sandbox की तरह काम करते हैं। browser को features सीमित करके एकीकृत user experience देना चाहिए।
IE और पुराना Edge भी इसी वजह से असफल हुए। Flash, ActiveX, Java Applet, Silverlight जैसे बाहरी sandbox सब गायब हो गए, और asm.js तथा WebAssembly के स्थिर होने से web बहुत अधिक साफ-सुथरा हो गया। वैसे, Flash का ActionScript, ECMAScript और TypeScript के design पर भी असर डालता था
when मैंने पहली बार
webkitdirectoryattribute देखा था, तब मैं भी चौंक गया था। वर्षों से web app बना रहा हूँ, फिर भी यह नज़र से छूट गया। browser sandbox दरअसल अरबों लोगों द्वारा संदिग्ध लिंक पर क्लिक करते हुए परखा गया security model है।हर बार नया container खड़ा करने की तुलना में यह कहीं अधिक mature approach है। हाँ, browser में system calls, binary execution और hardware access नहीं हो सकते, यह इसकी सीमा है। AI coding के लिए यह पर्याप्त है, लेकिन कुछ कामों में सीमाएँ रहेंगी
यह दिलचस्प है कि sandbox पर चर्चा में systemd या Linux की user permission system का लगभग ज़िक्र ही नहीं होता। वास्तव में ये भी काफ़ी शक्तिशाली हैं और कम लागत वाला isolation देते हैं
File System Access API web के विकास में एक बड़ा turning point है। co-do.xyz में directory चुनकर AI को उसके अंदर की files सुरक्षित ढंग से संभालने दी जा सकती हैं। इस API की वजह से web app सचमुच productivity tools बन पाए हैं
browser-आधारित execution दिलचस्प है, लेकिन ज़्यादातर वास्तविक business apps maintenance, security और data accessibility की वजह से cloud-केंद्रित हो चुके हैं। local execution व्यक्तिगत productivity के लिए अच्छा है, लेकिन mainstream apps के लिए इसकी सीमाएँ हैं। पहले के AppleScript, COM, DDE जैसे desktop automation features के गायब होने की वजह भी यही है
मैं browser में संभव दो और चीज़ों का परिचय देना चाहता हूँ
सैद्धांतिक रूप से, सिर्फ एक URL से काफ़ी हद तक पूर्ण agent system लागू किया जा सकता है
पहले Chrome में File System Access API के ज़रिए directory पढ़ने/लिखने की permission माँगी जा सकती थी, लेकिन tab refresh करते ही permission गायब हो जाती थी। अब यह सुधरा है या नहीं, यह जानना चाहता हूँ
यह तरीका सिर्फ file system को sandbox करता है। लेकिन लोग email, calendar, chat, source code, financial data आदि से भी जुड़ना चाहते हैं। file system security तो बस शुरुआत है; पूरे data ecosystem की security अब भी एक चुनौती है
इस approach की limits क्या हैं, यह जानना चाहता हूँ। क्या browser में Gemini CLI का UX-improved version बनाया जा सकता है? क्या इसे local tools के साथ भी integrate किया जा सकता है?