1. アップロード前暗号化1. Encryption before upload
CLIは端末上で32バイトのランダム鍵を生成し、AES-256-GCMとして読み込みます。各ファイルには異なる12バイトのランダムIVを使用し、ファイル名、MIME type、entrypointなどを含むmanifestも別のIVで暗号化します。ファイル送信APIへ送るのは暗号文です。
実装と実行可能な検証手順は暗号化設計で公開しています。
The CLI generates a random 32-byte key on the device and imports it as AES-256-GCM. Every file uses a different random 12-byte IV, and the manifest containing paths, MIME types, and the entrypoint uses another IV. File upload endpoints receive ciphertext.
The implementation and executable verification steps are documented in the public encryption design.
2. 復号キーとURL2. Decryption key and URL
復号キーは完全なプレビューURLの#k= fragmentに入ります。URL fragmentは通常のHTTPリクエストに含まれないため、CLIは復号キーをリクエストURL、header、bodyへ送信しません。
一方、完全なURLを入手した人はプレビューを復号できます。URL全体をパスワードと同様に扱い、公開チャンネル、Issue、アクセス解析、スクリーンショットへ載せないでください。漏えいした場合はプレビューを削除または作り直してください。
The decryption key is stored in the #k= fragment of the complete preview URL. URL fragments are not included in normal HTTP requests, so the CLI does not send the key in request URLs, headers, or bodies.
Anyone who obtains the complete URL can decrypt the preview. Treat the full URL like a password. Do not place it in public channels, issues, analytics, or screenshots. Delete or recreate the preview if it is exposed.
3. 暗号化されるものとメタデータ3. Encrypted data and metadata
ファイル内容、元のファイル名、MIME type、entrypointを含むmanifestは暗号化されます。運用に必要なpreview ID、device ID、平文と暗号文の合計サイズ、ファイル数、ランダムなstorage key、日時、有効期限、保持モード、状態は暗号化されません。
File contents and the manifest containing original filenames, MIME types, and the entrypoint are encrypted. Operational metadata is not encrypted, including preview and device ids, aggregate plaintext and ciphertext sizes, file count, random storage keys, timestamps, expiry, retention mode, and status.
4. Viewerと実行されるJavaScript4. Viewer and executed JavaScript
ブラウザはViewer JavaScriptを受け取り、URL fragmentの鍵を使って復号します。プレビュー内のJavaScriptは実行され、外部リソースを読み込む場合があります。Drovyu Previewは完全なセキュリティサンドボックスではありません。受信者は信頼できる送信者のプレビューだけを開いてください。
Viewer JavaScriptとその配信基盤も信頼境界に含まれます。詳しくは透明性・信頼モデルを確認してください。
The browser receives Viewer JavaScript and uses the URL-fragment key to decrypt the preview. JavaScript inside a preview may execute and load external resources. Drovyu Preview is not a complete security sandbox. Recipients should open previews only from trusted senders.
The Viewer JavaScript and its delivery infrastructure are part of the trust boundary. See the transparency and trust model for details.
5. npm packageの真正性確認5. Verifying the npm package
公式packageは@dvyu/cliです。npm metadataからversion、ソースcommit、integrity、provenance attestationを確認できます。
npm view @dvyu/cli@latest version gitHead dist.integrity dist.attestations --json
npm audit signaturesgitHeadを対応するGitHub Releaseのcommitと比較してください。ProvenanceはpackageがGitHub Actionsの公開リポジトリworkflowから発行されたことを検証する材料です。ソース自体の安全性を保証するものではありません。
The official package is @dvyu/cli. npm metadata exposes its version, source commit, integrity value, and provenance attestation.
npm view @dvyu/cli@latest version gitHead dist.integrity dist.attestations --json
npm audit signaturesCompare gitHead with the commit for the corresponding GitHub Release. Provenance helps verify that the package was published by a GitHub Actions workflow from the public repository. It does not prove that the source itself is secure.
6. 脆弱性報告6. Vulnerability reporting
脆弱性はGitHubの非公開脆弱性報告、またはお問い合わせフォームの「セキュリティ」から報告してください。公開IssueへプレビューURL、復号キー、credential、個人情報を投稿しないでください。
CLI、暗号化・upload protocol、Viewer、公式packageと公開ソースの不一致は報告対象です。利用者自身によるURL公開、第三者サービス単体の障害、利用規約違反コンテンツは脆弱性報告の対象外ですが、必要に応じてお問い合わせフォームから連絡できます。
Report vulnerabilities through GitHub private vulnerability reporting or the Security category of the contact form. Never post preview URLs, decryption keys, credentials, or personal information in a public issue.
Reports may cover the CLI, encryption and upload protocol, Viewer, or a mismatch between the official package and public source. A user publishing their own URL, an isolated third-party outage, or prohibited user content is outside vulnerability-report scope, but can still be reported through the contact form when appropriate.
7. 推奨される利用範囲7. Recommended use
公開前の静的サイト、UI、Storybook、一般的なレビュー用途を想定しています。法令・契約上の厳格な管理が必要な機密情報、NDA対象情報、個人情報、秘密鍵、認証情報、医療・金融情報には使用しないでください。
The service is intended for unreleased static sites, UI work, Storybook, and ordinary review. Do not use it for confidential data requiring strict legal or contractual controls, NDA material, personal data, private keys, credentials, or medical or financial information.
最終更新日: 2026年7月12日Last updated: July 12, 2026