
2026/01/26 14:23
ブラウザがサンドボックスです。
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
ポール・キンランは、現代のブラウザが軽量なサンドボックス環境としてコーディングエージェントを実行できると主張し、大きなローカルコンテナを必要としないことを示しています。彼はファイルシステムアクセス、ネットワーク制限、安全なコード実行という三つの主要サンドボックスレイヤーを概説し、それぞれがネイティブブラウザAPIでどのように実装できるかを説明します:ファイル操作には File System Access API、ネットワークトラフィックの分離には CSP
<iframe sandbox> ヘッダー、隔離された計算には WebAssembly workers を使用。彼のデモ「Co‑do」では、ユーザーがフォルダを選択し、LLM プロバイダーを選び、CSP で承認された API を通じて安全にファイルを読み取るツールとチャットします。このアプローチは Claude Cowork のエージェントモデルに似ていますが、ブラウザの組み込み機能のみを利用し、ブラウザ間の移植性を高めます。キンランは <iframe sandbox> サポートのドキュメント不足について指摘し、ネットワークルールを強制するためのダブル iframe 設定や、Firefox/Safari/Chrome で <input type="file" webkitdirectory> を介して読み取り専用ディレクトリアクセスが可能な機能などのテクニックも共有しています。この記事はブラウザサンドボックス技術に関するさらなる研究を促し、エージェントワークフローとクロスブラウザ互換性の拡張を目指しています。広く採用されれば、開発者は安全でコスト効率の高いコーディングエージェントを直接ブラウザ内に構築でき、ツール統合を簡素化しインフラストラクチャーの負担を軽減できます。本文
ブラウザはサンドボックスです。
Google のウェブプラットフォーム開発者アドボケートであるポール・キンランは、最近コードエージェントに注目しました。彼はエージェントが動作するためには堅牢なサンドボックスが不可欠だとすぐに認識し、ウェブブラウザがどのように役立つかを詳細にまとめました。
この話題から私はブラウザについて考え直しました。過去30年間、私たちは「ユーザーがURLをタップした瞬間」にウェブ上の極めて敵対的で信頼できないコードを実行するために特化されたサンドボックスを構築してきました。
ブラウザ内に Cowork のようなものを作れますか? もしかすると可能です。検証するため、私は Co‑do というデモを作り、この仮説を試しました。この投稿では、どこまで進められるか、そしてブラウザが信頼できないコードを実行できる能力はソフトウェアにとって有用で十分なのかどうかを調査した結果について議論します。
ポールはサンドボックスの三つの重要な側面――ファイルシステム、ネットワークアクセス、安全なコード実行――がブラウザ技術によってどのように扱われるかを説明しています。具体的には、File System Access API(現時点では Chrome でしか動作しない)、
<iframe sandbox> を備えた CSP ヘッダー、および Web Workers 内の WebAssembly です。Co‑do はこれらすべての概念を一つのアプリケーションにまとめた非常に興味深いデモです。
- フォルダ全体を選択し、LLM プロバイダーと API キーを設定します。
- Co‑do は CSP で許可された API 呼び出しを使ってプロバイダーと対話し、ファイルにアクセスするためのツール付きチャットインターフェースを提供します。
これは Claude Cowork に似ていますが、マルチギガバイトのローカルコンテナを実行してサンドボックスを構築する必要はありません。
私が
<iframe sandbox> について最大に感じる不満は、そのドキュメント化が極めて薄いことです。特に異なるブラウザ間での挙動が明確ではありません。ポールの記事には、私は他の場所で見たことのない多くの有用な詳細が含まれており、内部フレームへのネットワークルール適用を助ける複雑なダブル iframe 技術も紹介されています。
この記事のおかげで
<input type="file" webkitdirectory> タグについても知りました。Firefox、Safari、Chrome のすべてで動作し、ブラウザが一度にディレクトリ全体を読み取り専用でアクセスできることが判明しました。Claude にこのタグのデモを作らせて試してみましたが、将来のプロジェクトでも確実に活用するつもりです。