始める
画像の保護

画像の保護

注意

動画 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 のお客様にのみ提供されています。 この機能にご興味がある場合は、営業チームにお問い合わせください (opens in a new tab)

アセット URL を安全にするために、私たちは「MD5」と呼ばれる暗号化ハッシュ関数を使用して、オリジナルの URL と各セキュアソースのために生成された一意のトークンを組み合わせます。このハッシュ関数の結果は、署名されていない URL の最後に s パラメータとして追加され、署名された URL を作成します。

URL のパスまたはパラメータが s パラメータが設定された後に変更された場合、変更された URL はアセットではなく「403 Forbidden」コードを返します。これにより、不正な第三者が URL のパラメータを変更することが防止されますが、パラメータを自身で変更する必要がある場合は、新しい URL を再署名する必要があります

セキュア URL トークンは、ソースのセキュリティセクションにアクセスして、Show Token というボタンをクリックすることで見つけることができます。これは、セキュア URL が有効になっているソースでのみ利用可能です。

Showing a secure token in the dashboard

露出したトークン

セキュア URL トークンが露出した場合、同一のセキュアソースを作成し、新しいソースに切り替えることをお勧めします。 これにより、現在の URL が引き続き機能するため、古いソースを無効にするのに十分な時間が経過するまで待つことができます。

Secure URLs の有効化

アセット URL が署名される前に、Secure URL オプションがソースで有効になっている必要があります。Web Proxy Sources では自動的にオンになっていますが、Amazon S3、Google Cloud Storage、Microsoft Azure、Web Folder Sources では以下の手順に従ってオンにすることができます:

  1. Sources (opens in a new tab) ページにアクセスし、更新したいソースの View をクリックします。

  2. Configuration セクションで Edit をクリックします。

  3. Security のサブセクションで Secure URLs をチェックします。

    Security checkbox

  4. ページの最下部にある Review and Deploy をクリックします。

  5. 変更内容を確認し、Deploy this Config をクリックしてソースへの変更を完了します。

Secure URL オプションがソースで有効になった今、そのソースから提供される URL は署名される必要があります。Tools (opens in a new tab) タブにはクエリ文字列の最後に署名を追加する Sign Asset ツールが含まれています。次のセクションでこのツールの使用方法について説明します。

個別の画像のセキュリティ

Secure URLs が有効になると、ソースの詳細ページで Sign URLs ボタンをクリックすることで個々のアセットに署名することができます。

Security enabled in dashboard

単一の画像

Entering multiple URLs to sign

  1. 署名するアセットのサブドメインをドロップダウンメニューから選択します。
  2. アセットがソース内のフォルダにある場合は、そのパスを設定します。
  3. アセットを変換するために使用したいパラメータを割り当てます。
  4. 署名の有効期限を設定します。
  5. Sign Asset をクリックします。
  6. フォームは署名された URL と、署名された URL を直接クリップボードにコピーするボタンで置き換えられます。新しい署名された URL を使用してアセットを提供します。

複数の画像

Entering multiple URLs to sign

  1. ページの右上にあるボタンの「Multiple」側をクリックします。
  2. 署名したいすべてのアセットの完全な URL を入力します。最大100の URL を入力することができます。

ツールの使用

アセット URL の署名は Tools view (opens in a new tab)Sign URLs セクションでも行うことができます。

Sign Asset URLs button for a secure source

  1. アセットの完全修飾 URL を入力します。アセットが画像の場合は、画像を変換するために使用したいパラメータを含めてください。指示については Rendering API Documentation を参照してください。
  2. 署名の有効期限を設定します。
  3. Sign Asset をクリックします。
  4. フォームは署名された 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 (opens in a new tab) を参照してください。