file-uploads
ファイルアップロードとクラウドストレージを安全に処理する
アプリケーションをブロックしたり、機密データを露出したりすることなく、ファイルを安全にアップロードできます。このスキルは、署名付き URL、マジックバイト検証、安全なクラウドストレージ統合のための実証済みのパターンを提供します。
スキルZIPをダウンロード
Claudeでアップロード
設定 → 機能 → スキル → スキルをアップロードへ移動
オンにして利用開始
テストする
「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 が返される
セキュリティ監査
安全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)
品質スコア
作れるもの
Web アプリケーションのファイルアップロード機能
自動検証とクラウドストレージを備えた、ユーザープロファイルシステム向けの安全な画像アップロード機能を構築します。
大容量ビデオファイルの処理
サーバーメモリの問題を引き起こすことなく、100MB を超えるビデオファイルのマルチパートアップロードを実装します。
ドキュメント管理システム
タイプ検証と整理されたクラウドストレージパスを備えた安全なドキュメントアップロードパイプラインを作成します。
これらのプロンプトを試す
署名付き URL を使用してユーザーアバター画像を S3 にアップロードするコードを生成します。アップロードを許可する前に、マジックバイトを使用してファイルが有効な画像であることを検証してください。
100MB を超えるファイルのマルチパートアップロードハンドラーを作成します。クライアント側のチャンキング、進捗追跡、S3 マルチパート API 統合を含めてください。
パストラバーサル攻撃を防止するために、アップロードされたファイル名をサニタイズする関数を作成します。危険な文字を削除し、ユニコードを正規化し、一意のストレージキーを生成します。
既存の S3 アップロードコードを Cloudflare R2 で動作するように変換します。署名付き URL 生成、適切なエンドポイント設定、コスト最適化のヒントを含めてください。
ベストプラクティス
- ファイルタイプは常にマジックバイトで検証し、ファイル拡張子やクライアントが提供する Content-Type ヘッダーを信頼しない
- 署名付き URL を使用してクライアントが直接クラウドストレージにアップロードできるようにし、サーバーの帯域幅コストを回避する
- 明示的なサイズ制限を設定し、API ゲートウェイとアップロードハンドラーの両方で強制する
回避
- クラウドストレージではなくアプリケーションサーバーのファイルシステムにアップロードされたファイルを保存する
- サニタイゼーションなしで元のファイル名をストレージキーとして使用する
- 署名付き URL を使用せずにバックエンドサーバーを介してファイルアップロードをプロキシする