2012-03-06 17 views
1

私のアプリでは、ログインしたユーザーにのみ表示したい巨大な安全なファイル(svg図面など)を提供する必要があります。ファイルはそれほど変わらないし、そうであれば別のURLを持っているので、すでにログインしているユーザーに高速に読み込むために、Googleのアプリケーションエンジンでエッジキャッシュを使用したいと思う。Google Apps Engineでセキュリティ保護されたコンテンツをエッジキャッシュする

私の質問は、どうすれば安全にするのですか?つまり、ユーザーがログアウトして他のユーザーがブラウザを使用している場合、そのコンテンツを見ることができますか?もしそうなら、それをどうやって防ぐのですか?

関連:ウェブサイトのコンテンツのURLをブラウザが覚えていないようにするにはどうすればよいですか。

答えて

3

解決策の1つは、Google Cloud Storage with ACLを使用している可能性があります。つまり、特定のログインしているユーザーだけがそのファイルにアクセスできるようにすることができます。このソリューションはGoogleアカウントに限られています。

UPDATE:Googleのクラウドストレージが今short-life signed URLsがあります

」...あなたは、ユーザーが限られた時間のためにそのリソースにアクセスできるようになるユーザーに署名したURLを提供することができURLを知っている人。限られた時間だけリソースにアクセスすることができます(署名するクエリ文字列で有効期限を指定します)。 " - これは必要なものにさらに近づく可能性があります。

もう1つの解決策は、動的ハンドラから膨大なファイルを処理することです。しかし、これは多くのCPUと帯域幅を消費します。また、あなたはまだGAE quotasによって制限されます。

関連する:ブラウザが訪問済みURLやその他の種類の履歴を覚えていないようにすることはできません。それは、特定のブラウザとユーザーの設定に依存します(あなたのapp/javascript /その他にはアクセスできない)。あなたのユーザーに尋ねることができるのは、ログアウト時に自分の履歴、クッキー、その他のものをクリアすることだけです。

1

あなたは、私はちょうど限り、ブラウザがファイルをキャッシュすることができ期限が切れないよう http://code.google.com/intl/de-DE/appengine/docs/java/config/appconfig.html

(もしかしたらあなたの言語にスイッチをグーグル、してみてください)ドイツ語リンクを持っている

は申し訳ありませんのAppConfigに有効期限を設定することができますローカルに。その結果、ロード時間が短くなります。ただし、キャッシュが小さすぎると、ブラウザはファイルを再度要求します。

良いブラウザでは、ログに記録されたユーザーのみが安全なファイルを使用できます。 しかし、どのブラウザが使用されているかは保証されていません。あなたのユーザーはいつでも安全なファイルをダウンロードし、どこにでも公開することができます。

ユーザーが3人目のユーザーにログインを許可すると、常にセキュリティ保護されたファイルにアクセスできます。

リンクを思い出すのを避けることはできません。ある意味では、それは上記の矛盾です。