PreviewFile IconPreviewFile.dev

セキュリティとプライバシー

PreviewFile.devが包括的なセキュリティ機能でユーザーのファイルを保護する方法を学びます

セキュリティとプライバシー

PreviewFile.devはユーザーのファイルを保護するために一から構築されています。すべての機能はセキュリティとプライバシーを念頭に置いて設計されています。

コアセキュリティ機能

🔒 動的ウォーターマーク

機密文書を保護し、不正な共有を阻止するためのカスタムテキストウォーターマークを追加します。

  • カスタムテキスト: 会社名、機密性通知、ユーザー識別子を追加
  • 位置制御: 文書全体にウォーターマークをオーバーレイ
  • 削除不可: ウォーターマークはプレビュー中にレンダリングされ、ファイルに保存されません
  • 使用例: 法的文書、契約書、機密レポート

⏱️ 時間制限アクセス(TTL)

リンクが無期限にアクセス可能なままにならないよう、有効期限を設定します。

  • 柔軟な期間: 15分から7日まで(プラン制限が適用されます)
  • 自動期限切れ: TTL期限後、リンクはアクセス不能になります
  • 手動クリーンアップ不要: サーバーが期限切れセッションを自動処理
  • 使用例: 一時的な文書共有、時間に敏感なファイル

🚫 ダウンロード保護

プレビューアクセスを許可しながら、視聴者がファイルをダウンロードすることを防ぎます。

  • プレビューのみモード: ユーザーは表示できますが、ローカルに保存できません
  • 右クリック無効: 簡単なダウンロード試行を防止
  • DevTools保護: 技術的回避策を防ぐ追加レイヤー
  • 使用例: 機密PDF、機密プレゼンテーション、プロプライエタリ文書

🔥 ワンタイムアクセス(Burn After Reading)

一度の閲覧後に自己破壊するリンクを作成します。

  • 一回限りリンク: 初回アクセス後に自動期限切れ
  • 閲覧追跡: システムがリンクがアクセスされた時刻を記録
  • 完全前方秘匿性: 一度閲覧されると、リンクは再利用できません
  • 使用例: 高度に機密な文書、パスワードリセット、一時的な認証情報

🔗 ホットリンク保護

不正な埋め込みと帯域幅の盗用を防ぎます。

  • リファラー検証: 承認されたドメインからのアクセスのみを許可
  • IP/User-Agentバインディング: 特定のクライアントにセッションをバインド
  • CloudFront署名付きURL: 暗号学的に安全なアクセストークン
  • 使用例: CDN帯域幅の保護、配布の制御

デザインによるプライバシー

クライアントサイドレンダリング

  • データ保持なし: ファイルコンテンツは一時的なリンクを超えて保存されません
  • 帯域幅効率: 可能な限り直接的なクライアントからストレージへの接続
  • サーバー変換: 技術的な制限により、doc/officeファイルにはサーバー側の変換が必要です

最小限のデータ収集

サービス提供に必要なもののみを収集します。

  • ファイルメタデータのみ: ファイル名、サイズ、MIMEタイプ、有効期限
  • コンテンツスキャンなし: ファイルコンテンツは分析やインデックス化されません
  • オプションユーザーデータ: 基本使用では認証はオプションです
  • 監査ログ: アクセスログはセキュリティに必要な期間のみ保持されます

セキュアストレージ統合

ファイルは業界標準のS3互換ストレージに保存されます。

  • 保存時暗号化: S3サーバーサイド暗号化(SSE-S3)
  • 転送時暗号化: すべての接続でHTTPS/TLS
  • プライベートバケット: ストレージは公的にアクセス可能ではありません
  • 署名付きURL: 時間制限付きの暗号学的に署名されたアクセストークン

コンプライアンスとベストプラクティス

データレジデンシー

  • マルチリージョンサポート: ユーザーに最も近いストレージリージョンを選択
  • プライベートデプロイメント: 完全なデータ制御のためのセルフホスティング
  • GDPR考慮事項: 最小限のPII収集、要求に応じたデータ削除

アクセス制御

  • ユーザー認証: オプションのClerkベース認証
  • APIキー管理: 安全なトークンベースのAPIアクセス
  • レート制限: 悪用とDDoSからの保護

セキュリティヘッダー

  • Content Security Policy (CSP): XSS攻撃を防止
  • X-Frame-Options: クリックジャッキングを防止
  • Strict-Transport-Security: HTTPSを強制

開発者向け

APIセキュリティ

// すべてのAPIリクエストには認証が必要
const response = await fetch('https://previewfile.dev/api/u', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    url: 'https://example.com/confidential.pdf',
    ttlMinutes: 60,
    watermark: '機密 - 内部使用のみ',
    noDownload: true,
    oneTime: false,
  }),
});

セキュリティ設定例

// 高度にセキュアなプレビューリンクを作成
const securePreview = await trpc.preview.create.mutate({
  file: uploadedFile,
  ttlMinutes: 30,                    // 30分で期限切れ
  watermark: `${user.email} - ${new Date().toISOString()}`,  // ユーザー + タイムスタンプウォーターマーク
  noDownload: true,                   // ダウンロードを防止
  oneTime: true,                      // 一回限りリンク
});

脅威モデル

PreviewFile.devは以下から保護します:

  • ✅ 不正な配布: TTLと一回限りリンクが制御されていない共有を防止
  • ✅ データ盗用: ダウンロード保護とウォーターマークがコピーを阻止
  • ✅ ホットリンク/帯域幅盗用: リファラー検証と署名付きURL
  • ✅ XSS/インジェクション攻撃: 厳格なCSPと入力検証

次のステップ

  • APIドキュメントを探索してセキュリティ機能を実装
  • 価格をチェックしてエンタープライズセキュリティオプションを確認
  • セキュリティアンケートやコンプライアンス文書についてはお問い合わせください

On this page