gazou-compressor.jp

署名付きURLとホットリンク防止 戦略ガイド(期限/トークン/画像CDNセキュリティ)

無制限アクセスやホットリンク(外部サイト直接埋め込み)による帯域浪費キャッシュヒット低下はコストとパフォーマンスを同時に悪化させます。本ガイドは Signed URL / Cookie / Token / Edge 検証を組み合わせ、再現性ある短期アクセス制御安全な鍵運用を確立する実務フレームを提示します。

関連: 配信設計
画像のキャッシュ戦略は CDN Cache制御、解像度と形式は 最適化チェックリスト を参照。

1. 脅威モデル(何を防ぎ何を許容するか)

2. 署名方式の選択肢と組み合わせ

方式利点弱点/注意適用例
Query署名 (signed_url?exp=...&sig=...)単純実装/パス毎差異/キャッシュ整合しやすいURL露出しやすい・長期共有化されがち短期一時表示 / サムネ分発行
Path署名 (/sig/hash/path)パラメータ秘匿・WAFルール簡潔URL正規化の統一ミスで検証失敗CDNエッジ変換 / 低漏洩面
Cookie署名URL継続性・埋め込みで露出しにくいCookie属性管理・CORS/サブドメイン整合会員制ギャラリー / 一時DL
Origin Token (Header)権限/レート柔軟・短期失効プレーン転送で漏洩時リプレイAPI連携 / 動的変換レイヤ
Signed Cookie + 変換署名併用動的リサイズ/フォーマット変換を認可付きで安全化設計が複雑・監査要件増高額課金素材 / 有料会員

※ 公開静的アセットへの WAF 過剰適用は失敗率増。リスク境界を明確化し保護レベルを段階化。

3. 期限と鍵ローテーション(短期+オーバーラップ)

期限(exp)は最小権限原則。短期URL(5〜10分)をユーザー操作直前に発行し、再取得は軽量APIで行う。鍵は K_active/K_next の2本を保持し、署名検証は両方許容期間を24時間程度設けることで無停止ローテーション。漏洩時は K_next を即昇格 + 新 next を再生成し短期失効を強制。

4. キャッシュ失効と再検証整合

署名付きURLはパス差異でキャッシュキーが分離されやすくヒット率を下げがち。Variantパラメータ(サイズ/format)を正規位置に固定し canonical 生成を統一、stale-while-revalidate で短期署名とキャッシュ再利用を両立。リサイズ/変換は生成後に immutable + 長期TTL(1y)で実ファイルを固定し、署名は取得フェーズのみ保護する二層構造が安定する。

5. 動的最適化レイヤ併用(安全なエンコード)

画像の動的最適化(/resize?url=...&w=...)は SSR や Edge Functions で行う場合、オリジン以外参照の悪用リソース爆破が主リスク。署名パラメータに変換指示(w,h,format,q)を含め、入力URLが許可ドメイン/パス前方一致のみ通過するホワイトリスト検証を実装。Sharp等のライブラリは並列数/メモリ上限制限を行い、失敗時は軽量PNG保険画像を即時返却する。

6. 監視と検知(可視化→閾値→自動化)

不正利用は 失敗率同一IP集中期限切れ再試行 のスパイクで検知。メトリクスを時系列DBへ送信し、95/99パーセンタイル逸脱でアラート。攻撃時は WAF ルール(ASN/IP Range)自動追加と署名鍵早期ローテを組み合わせ MTTR を短縮。

7. ハードニング(多層防御と最小権限)

8. まとめ:短期署名 + キャッシュ二層 + ローテ自動化

短期署名URLとキャッシュ戦略を分離し「生成段階を守り、生成済みは高速再利用」の二層構造にで、コストと安全性を同時に最適化できます。鍵ローテーションと監視を標準化し、異常兆候時のRunbookを自動化すれば攻撃と日常運用を同じ形で捌けます。

Version: 2025-09-06 – 初版(TechArticle/HowTo/FAQ/構造化データ統合)。

gazou-compressor.jp 編集部

画像圧縮・変換・背景除去などの実践テクニックと、Webで“速く・軽く・崩さない”ためのノウハウを発信しています。

関連記事

トピック/更新日の近いコンテンツ