21

Amazon Cloudfront を使用してサイトのすべての画像と動画をホストし、世界中に分散しているユーザーにより速く提供しています。また、Cloudfront でホストされている要素にかなり積極的なフォワード キャッシングを適用し、 に設定Cache-Controlpublic, max-age=7776000ます。

私は最近、サードパーティのサイトが自分の Cloudfront サーバーにホットリンクして、許可なく自分のページに画像を表示していることを発見しました。

自分のサーバーでホットリンクを防止するように構成.htaccessしましたが、この機能をネイティブでサポートしていないように見える Cloudfront でこれを行う方法が見つかりませんでした。そして、厄介なことに、ホットリンクを防ぐために使用できる Amazon のバケット ポリシーは、S3 でのみ効果があり、CloudFront ディストリビューションには効果がありません [リンク]。ポリシーを利用したい場合は、コンテンツを S3 から直接提供する必要があります。

サーバーのログを調べてホットリンカーを探し、ファイル名を手動で変更することは、実際には現実的な選択肢ではありませんが、最も露骨な攻撃を終わらせるためにこれを行っています.

どんな提案でも大歓迎です。

4

7 に答える 7

11

Refererヘッダーをオリジンに転送できます

  1. CloudFront 設定に移動します
  2. ディストリビューションのディストリビューション設定を編集する
  3. [動作] タブに移動し、動作を編集または作成します
  4. 転送ヘッダーをホワイトリストに設定する
  5. リファラーをホワイトリストのヘッダーとして追加
  6. 右下隅に設定を保存します

オリジンでも Referer ヘッダーを必ず処理してください。

于 2014-07-05T14:16:37.003 に答える
10

公式のアプローチは、メディアに署名付き URLを使用することです。配布するメディアごとに、特定の時間とソース IP の制約で機能する特別に細工された URL を生成できます。

静的ページの 1 つのアプローチは、ページのキャッシュ時間の 2 倍の期間有効な、そのページに含まれるメディアの一時的な URL を生成することです。ページのキャッシュ時間が 1 日だとします。2 日ごとにリンクが無効になり、ホットリンカーは URL を更新する必要があります。新しい URL を自動的に取得するためのツールを作成できるため、絶対確実というわけではありませんが、ほとんどの人はそれを防げるはずです。

ページが動的な場合は、ページのキャッシュを破棄することを心配する必要がないため、リクエスタの IP に対してのみ機能する URL を簡単に生成できます。

于 2011-08-16T11:38:49.973 に答える
8

多くのホットリンクの問題がありました。最後に、多くの画像の CSS スプライトを作成しました。下部/側面に空白を追加するか、画像を組み合わせます。

CSS を使用してページに正しく表示しましたが、CSS/HTML もコピーしない限り、ホットリンクは画像を正しく表示しません。

私たちは、彼らが気にしない (または方法がわからない) ことを発見しました。

于 2011-05-12T09:15:13.937 に答える
6

2015 年 10 月現在、AWS WAF を使用して Cloudfront ファイルへのアクセスを制限できます。これは、WAF を発表し、WAF で何ができるかを説明するAWS の記事です。これは、リファラーに基づいてアクセスを制限する最初の ACL をセットアップするのに役立つ記事です。

基本的に、デフォルト アクションが DENY の新しい ACL を作成しました。ドメイン名 (小文字) のリファラー ヘッダー文字列の末尾をチェックするルールを追加しました。そのルールに合格すると、アクセスが許可されます。

ACL を Cloudfront ディストリビューションに割り当てた後、データ ファイルの 1 つを Chrome に直接読み込もうとしたところ、次のエラーが発生しました。

WAF ACL を適用した後、Cloudfront ファイルに直接アクセスしようとすると Chrome のエラー メッセージが表示される

于 2016-02-10T16:08:16.487 に答える
2

私の知る限り、現在解決策はありませんが、おそらく関連する、おそらく無関係な提案がいくつかあります...

最初に: 多くの人が Cloudfront サポート フォーラムでこれを尋ねてきました。たとえば、ここここを参照してください。

明らかに、AWS はホットリンクの恩恵を受けています。ヒットが多ければ多いほど、より多くの料金が請求されます! 私たち (Cloudfront ユーザー) は、機能としてリファラー チェックを提供するために、ある種の綿密に調整されたキャンペーンを開始する必要があると思います。

私が考えたもう 1 つの一時的な解決策は、トラフィックを cloudfront/s3 に送信するために使用する CNAME を変更することです。したがって、現在すべての画像を次の宛先に送信しているとします。

cdn.blahblahblah.com (一部の cloudfront/s3 バケットにリダイレクトされます)

これを cdn2.blahblahblah.com に変更し、cdn.blahblahblah.com の DNS エントリを削除できます。

DNS の変更として、トラフィックがサーバーの近くに到達する前に、現在ホットリンクしているすべての人をノックアウトします。DNS エントリは単に検索に失敗します. これを有効にするには、cdn CNAME を変更し続ける必要があります (月に 1 回など) が、うまくいきます。

これは、人々があなたのウェブサイトのページ全体 (画像を含む) のコピーをはるかに簡単にスクレイピングできることを意味するため、実際には思ったよりも大きな問題です。検索エンジンは、ページがコピーであり、コピーがオリジナルであると判断することがあります...そして、あなたのトラフィックは激怒します.

Cloudfront を放棄して、戦略的に配置された超高速の専用サーバー (すべてのコンテンツを 1 か所から全世界に提供する) を使用して、そのようなことをより細かく制御できるようにすることを考えています。

とにかく、他の誰かがより良い答えを持っていることを願っています!

于 2011-04-20T12:45:46.850 に答える