スキル file-uploads
📦

file-uploads

安全

ファイルアップロードとクラウドストレージを安全に処理する

アプリケーションをブロックしたり、機密データを露出したりすることなく、ファイルを安全にアップロードできます。このスキルは、署名付き URL、マジックバイト検証、安全なクラウドストレージ統合のための実証済みのパターンを提供します。

対応: Claude Codex Code(CC)
🥉 74 ブロンズ
1

スキルZIPをダウンロード

2

Claudeでアップロード

設定 → 機能 → スキル → スキルをアップロードへ移動

3

オンにして利用開始

テストする

「file-uploads」を使用しています。 500MB のビデオファイルをクラウドストレージにアップロードする

期待される結果:

  • 1. クライアントがマルチパートアップロードの署名付き URL をリクエスト
  • 2. サーバーが 5 つのアップロードパート URL (各 100MB) を生成
  • 3. クライアントが各パートを並列で直接 S3 にアップロード
  • 4. クライアントがマルチパートアップロード完了 API を呼び出す
  • 5. ファイルが s3://bucket/videos/user123/video.mp4 で利用可能に

「file-uploads」を使用しています。 アップロードされた画像ファイルタイプを検証

期待される結果:

  • ファイルヘッダーバイトをチェック:FF D8 FF (JPEG シグネチャを検出)
  • Content-Type ヘッダーの主張:image/jpeg - 有効
  • ファイルサイズ:2.3MB - 5MB 制限内
  • ファイル名をサニタイズ:'photo.jpg' -> 'uploads/user123/abc123.jpg'
  • アップロードが承認され、署名付き URL が返される

セキュリティ監査

安全
v1 • 2/25/2026

This skill is a documentation-only file (SKILL.md) providing guidance on secure file upload handling. Static analysis flagged 'weak cryptographic algorithm' at lines 3 and 26, but both are FALSE POSITIVES. Line 3 contains only a YAML description field, and line 26 is plain documentation text. No actual code execution, network calls, or cryptographic operations exist in this skill.

1
スキャンされたファイル
27
解析された行数
1
検出結果
1
総監査数
低リスクの問題 (1)
Static analysis false positive - weak cryptographic algorithm
The static analyzer flagged 'weak cryptographic algorithm' at SKILL.md:3 and SKILL.md:26. Both are false positives. Line 3 contains only a YAML frontmatter description field mentioning presigned URLs. Line 26 contains plain documentation text. No actual cryptographic code exists in this file.
監査者: claude

品質スコア

38
アーキテクチャ
100
保守性
87
コンテンツ
50
コミュニティ
100
セキュリティ
91
仕様準拠

作れるもの

Web アプリケーションのファイルアップロード機能

自動検証とクラウドストレージを備えた、ユーザープロファイルシステム向けの安全な画像アップロード機能を構築します。

大容量ビデオファイルの処理

サーバーメモリの問題を引き起こすことなく、100MB を超えるビデオファイルのマルチパートアップロードを実装します。

ドキュメント管理システム

タイプ検証と整理されたクラウドストレージパスを備えた安全なドキュメントアップロードパイプラインを作成します。

これらのプロンプトを試す

基本的な S3 アップロード設定
署名付き URL を使用してユーザーアバター画像を S3 にアップロードするコードを生成します。アップロードを許可する前に、マジックバイトを使用してファイルが有効な画像であることを検証してください。
マルチパートアップロードの実装
100MB を超えるファイルのマルチパートアップロードハンドラーを作成します。クライアント側のチャンキング、進捗追跡、S3 マルチパート API 統合を含めてください。
安全なファイル名のサニタイゼーション
パストラバーサル攻撃を防止するために、アップロードされたファイル名をサニタイズする関数を作成します。危険な文字を削除し、ユニコードを正規化し、一意のストレージキーを生成します。
Cloudflare R2 への移行
既存の S3 アップロードコードを Cloudflare R2 で動作するように変換します。署名付き URL 生成、適切なエンドポイント設定、コスト最適化のヒントを含めてください。

ベストプラクティス

  • ファイルタイプは常にマジックバイトで検証し、ファイル拡張子やクライアントが提供する Content-Type ヘッダーを信頼しない
  • 署名付き URL を使用してクライアントが直接クラウドストレージにアップロードできるようにし、サーバーの帯域幅コストを回避する
  • 明示的なサイズ制限を設定し、API ゲートウェイとアップロードハンドラーの両方で強制する

回避

  • クラウドストレージではなくアプリケーションサーバーのファイルシステムにアップロードされたファイルを保存する
  • サニタイゼーションなしで元のファイル名をストレージキーとして使用する
  • 署名付き URL を使用せずにバックエンドサーバーを介してファイルアップロードをプロキシする

よくある質問

署名付き URL とは何ですか?また、なぜ使用するべきですか?
署名付き URL は、クラウドストレージへのアップロードまたはダウンロードへの一時的なアクセス権を付与する、時間制限付きの URL です。署名付き URL を使用することで、クライアントは S3 や R2 に直接アップロードでき、一時的な認証情報を使用してセキュリティを維持しながら、サーバーの負荷と帯域幅コストを削減できます。
ファイルタイプを安全に検証するにはどうすればよいですか?
ファイル拡張子や Content-Type ヘッダーを信頼するのではなく、ファイルのマジックバイト (ヘッダーシグネチャ) を確認します。例えば、JPEG ファイルはバイト FF D8 FF で始まります。これにより、攻撃者が偽の拡張子を持つ悪意のあるファイルをアップロードするのを防止できます。
アップロードにどのようなサイズ制限を設定すべきですか?
ユースケースに基づいて制限を設定します:プロフィール画像 (5MB)、ドキュメント (25MB)、ビデオ (500MB 以上)。API ゲートウェイ、アプリケーションロジック、クラウドストレージバケットポリシーの複数の層で制限を常に強制します。
ファイル名におけるパストラバーサル攻撃をどのように防止しますか?
元のファイル名を直接使用しないでください。すべてのパスコンポーネントを削除し、特殊文字を削除または置換し、ユニコードを正規化し、データベース内の元のマッピング名を保持しながらランダムなストレージキーを生成することを検討してください。
マルチパートアップロードとは何ですか?また、いつ使用するべきですか?
マルチパートアップロードは、大きなファイルを並列でアップロードするチャンクに分割します。100MB 超のファイルに使用します。メリットには、アップロードの再開可能、並列転送速度、S3 で最大 5TB のファイルを処理できる機能があります。
このスキルを S3 以外のストレージプロバイダーで使用できますか?
はい。このパターンは、Cloudflare R2、MinIO、DigitalOcean Spaces、Wasabi を含む S3 互換ストレージで動作します。エンドポイント URL と認証情報を変更するだけです。

開発者の詳細

ファイル構成

📄 SKILL.md