コンテンツにスキップ

サポートとセキュリティ

CapabilityLinuxmacOSWindowsChromiumFirefoxWebKit
Node.js 24+ の core package/CLI対応対応対応
npm/pnpm による consumer install対応対応対応
pinned Rust toolchain と wasm-pack による Rust/Wasm generation対応対応対応
Python/Pyodide asset generation対応対応対応
wasm32-wasi-ghc 9.14 による Haskell/WASI generation対応対応非対応
built static site と Rust/Python/Haskell execution対応対応対応
生成済み Haskell Wasm の表示対応 browser host対応対応対応

package boundary は Node.js 24 以上です。repository は pnpm 11.2.2 を使い、consumer は npm/pnpm を使えます。native Windows では Haskell cell を author/generate できませんが、Linux/macOS で作った Haskell Wasm を serve/view できます。

author-provided Rust、Python、Haskell source は、reader が cell を実行したとき browser worker 内で動く code になります。worker は重い処理を page UI thread から分離しますが、別 machine/account 相当の security boundary ではありません。

  • Rust helper crate と generated Wasm は build input で、application dependency と同様に review が必要です。
  • Pyodide と declared Python package は site origin 内で実行され、worker 内でも trusted dependency です。
  • Haskell は Oxiquill が渡した descriptor だけを持つ WASI shim で動きますが、generated module は executable content です。
  • worker timeout は responsiveness を守るもので、任意 code の安全性や confidentiality を証明しません。

untrusted author の interactive code/generated runtime asset を review なしで公開しないでください。secret を static page、worker message、source、public asset、client に露出する build-time environment に置かないでください。

Mermaid source は author content で、Mermaid strict security level で render されます。公開前に review し、Mermaid 自体も更新してください。generated/downloaded Wasm、Pyodide JavaScript、lockfile-selected wheel、mirror は executable supply-chain input です。Oxiquill は download integrity を確認しますが、意図的に選んだ package の信頼性までは保証しません。

image data は browser image decoder に渡されます。SVG は page DOM に inject せず image context で表示しますが、malformed/hostile media も browser parser を使います。author-provided image/public media は untrusted input として扱い、supported patched browser を使ってください。

HTML artifact は空の sandbox attribute と referrerPolicy="no-referrer" を持つ iframe 内で表示します。allow-scriptsallow-same-originallow-formsallow-popupsallow-top-navigation、download permission は与えません。そのため script 実行、parent DOM や same-origin storage/cookie への access、form submit、popup、download 開始、top-level navigation はできません。

Oxiquill は srcdoc の先頭に default-src 'none'; img-src data: blob:; media-src data: blob:; style-src 'unsafe-inline'; font-src data:; base-uri 'none'; form-action 'none' という Content Security Policy を追加します。reviewed presentation artifact に必要な inline style と data/blob image/media だけを残し、HTTP(S) などの external subresource request を block します。明示的な base/form directive により、markup は URL resolution や form destination を変更できません。iframe policy は referrer も抑止します。

sandbox と CSP は isolation control であり、HTML sanitization ではありません。browser は supplied markup を引き続き parse し、user は isolated frame 内の text/link など通常の content を操作できます。可能なら typed text、JSON、table、chart、image artifact を使い、HTML は reviewed author からだけ公開してください。

疑わしい vulnerability を public issue に書かず、GitHub private vulnerability reporting を使ってください。supported-version policy と response process は repository の security policy にあります。security 以外の bug/support は GitHub Issues を使います。