画像の保護
注意
動画 API は現在、アセット保護に対応していません。
imgix では、アセットを提供するために使用されるすべての URL を安全に保つことを推奨しています。Amazon S3、Google Cloud Storage、Microsoft Azure、DigitalOcean、Cloudflare R2、Wasabi、Linode、Web Folder Sources を安全にすることは必須ではありませんが、Web Proxy Sources には必須です。
プレミアム機能
Web Proxy Source は現在、プレミアムプランをご利用の imgix のお客様にのみ提供されています。 この機能にご興味がある場合は、営業チームにお問い合わせください。
アセット URL を安全にするために、私たちは「MD5」と呼ばれる暗号化ハッシュ関数を使用して、オリジナルの URL と各セキュアソースのために生成された一意のトークンを組み合わせます。このハッシュ関数の結果は、署名されていない URL の最後に s
パラメータとして追加され、署名された URL を作成します。
URL のパスまたはパラメータが s
パラメータが設定された後に変更された場合、変更された URL はアセットではなく「403 Forbidden」コードを返します。これにより、不正な第三者が URL のパラメータを変更することが防止されますが、パラメータを自身で変更する必要がある場合は、新しい URL を再署名する必要があります。
セキュア URL トークンは、ソースのセキュリティセクションにアクセスして、Show Token というボタンをクリックすることで見つけることができます。これは、セキュア URL が有効になっているソースでのみ利用可能です。
露出したトークン
セキュア URL トークンが露出した場合、同一のセキュアソースを作成し、新しいソースに切り替えることをお勧めします。 これにより、現在の URL が引き続き機能するため、古いソースを無効にするのに十分な時間が経過するまで待つことができます。
Secure URLs の有効化
アセット URL が署名される前に、Secure URL オプションがソースで有効になっている必要があります。Web Proxy Sources では自動的にオンになっていますが、Amazon S3、Google Cloud Storage、Microsoft Azure、Web Folder Sources では以下の手順に従ってオンにすることができます:
-
Sources ページにアクセスし、更新したいソースの View をクリックします。
-
Configuration セクションで Edit をクリックします。
-
Security のサブセクションで Secure URLs をチェックします。
-
ページの最下部にある Review and Deploy をクリックします。
-
変更内容を確認し、Deploy this Config をクリックしてソースへの変更を完了します。
Secure URL オプションがソースで有効になった今、そのソースから提供される URL は署名される必要があります。Tools タブにはクエリ文字列の最後に署名を追加する Sign Asset ツールが含まれています。次のセクションでこのツールの使用方法について説明します。
個別の画像のセキュリティ
Secure URLs が有効になると、ソースの詳細ページで Sign URLs ボタンをクリックすることで個々のアセットに署名することができます。
単一の画像
- 署名するアセットのサブドメインをドロップダウンメニューから選択します。
- アセットがソース内のフォルダにある場合は、そのパスを設定します。
- アセットを変換するために使用したいパラメータを割り当てます。
- 署名の有効期限を設定します。
- Sign Asset をクリックします。
- フォームは署名された URL と、署名された URL を直接クリップボードにコピーするボタンで置き換えられます。新しい署名された URL を使用してアセットを提供します。
複数の画像
- ページの右上にあるボタンの「Multiple」側をクリックします。
- 署名したいすべてのアセットの完全な URL を入力します。最大100の URL を入力することができます。
ツールの使用
アセット URL の署名は Tools view の Sign URLs セクションでも行うことができます。
- アセットの完全修飾 URL を入力します。アセットが画像の場合は、画像を変換するために使用したいパラメータを含めてください。指示については Rendering API Documentation を参照してください。
- 署名の有効期限を設定します。
- Sign Asset をクリックします。
- フォームは署名された URL と、署名された URL を直接クリップボードにコピーするボタンで置き換えられます。新しい署名された URL を使用してアセットを提供します。
別の URL を署名するには、単に Sign Another Asset をクリックします。
URLの有効期限
URLにはクエリ文字列に UNIX タイムスタンプを取る expires
パラメータを通じて有効期限を設定することができます。例えば:
?expires=1477789261
この UNIX タイムスタンプは 2016年10月30日 1時01分 (UTC時間) に変換されます。この時間後にこの URL へのリクエストが行われた場合、404ステータスコードが出力されます。リクエストが有効期限の日付前に行われた場合、画像の Cache-Control
ヘッダーは有効期限までの残り時間を秒単位で置き換えられます。同じ expires
値で現在の時間が 2016年10月30日 1時00分 (UTC時間) の場合、ヘッダーは Cache-Control: max-age=60
を出力します。
クエリ文字列でタイムスタンプが自由に変更できるため、expires
ヘッダーを使用するアセットには署名を推奨します。
アプリケーション内での画像の保護
アプリケーションまたはウェブサイトでスケールしてアセットを保護する場合、imgix client libraries の使用を強くお勧めします。これにより、特定の言語での最新の問題に常に対応できるようになります。rendering api はシンプルですが、常に明らかではないいくつかの特殊なケースがあります。
クライアントライブラリがお使いの言語で利用できない場合は、imgix ライブラリブループリント文書の Securing URLs section を参照してください。