2017-02-23 10 views
1

HTTP認証を持つテストサーバーがあります。Cloudflare(およびその他のDNSベースのCDN) - Authを使用したキャッシュ

CDNキャッシングにクラウドフレアが使用されています。

テストサーバーには、Googleがインデックスを作成しないようにするための認証があります(robots.txtファイルが削除されることがあります)。

Cloudflareはこのサーバーでの認証があればコンテンツをキャッシュできますか?

もしそうなら、それはどうしていますか?私は、コンテンツがサーバーとブラウザの間で直接送信されると考えました。

+0

CFは認証に合格し、静的リソースをキャッシュする必要があります。 – Jules

答えて

0

私はcloudflare CDNの専門家ではありません。しかし、一般的にどのように動作するか、またはAkamaiでどのように動作するかを教えてください。要求がCDNに送信されたとき

あなたが認証保護されたウェブサイトをお持ちの場合はそうhttps://secure.test.com/admin

を言います。 CDNは、着信要求に理解できるトークン(Cookie)があるかどうかをチェックします。そうでない場合は、要求をオリジンサーバーに送信します。しかしそれを行う前に、/token.php?return=/adminのようなものを追加します。

オリジンサーバはユーザを認証します。いったん終了すると、元のサーバーでtoken.phpが実行され、他のアプリケーションのCookieとともに一意の暗号化トークンが生成されます。基本的に、このtoken.phpで暗号化Cookieの生成に使用するキーは、CDNの設定で追加するキーと同じになります。

次に、/ adminに来る要求には、cdnトークンがあります。このトークンは、CDNの設定(原点と同じ)で使用しているキーを使用して真正性を検証します。成功すると、キャッシュからコンテンツをサーバーに送ります。

注:CDNトークンの有効期限がアプリケーションのCookieよりも小さいことを確認してください。 アプリケーションセッションのクッキーが8時間であるとし、cdnクッキーを1時間程度に設定することをお勧めします。このCDNによって、1時間に1回あなたの原点に連絡し、トークンを更新します。私はそれをもっと混乱させたくないと思っています;-)

+0

Re: '/token.php?return =/admin'のようなものを追加すると、そのURLを意味しますか?またはクッキー?それがURLなら、この危険性はWebアプリケーションを壊すことはありません。それがクッキーの場合、私は同じロジックを使用します。 – Snowcrash

+0

そして、私はあなたが 'origin serverで' token.phpを実行することによって何を意味するのか不明です。もちろん、このファイルは元のサーバーには存在しません。 – Snowcrash

+0

こんにちは、よくtoken.phpは単なる例でしたが、これは他のプログラミングバージョンファイルでも可能です。通常、このファイルはCDNプロバイダによって提供されます。基本的に、このファイルは、ユーザが原点で認証され、ユーザブラウザにクッキーを設定した後にクッキーを生成するので、ブラウザが次にリクエストすると、CDNはこれが正規のユーザであることを知る。 – Vinod

関連する問題