1

私のアプリでは、ログインしているユーザーにのみ表示したい巨大な安全なファイル (svg 図面など) を提供する必要があります。ファイルはあまり変更されません。変更された場合、URL が異なるため、既にログインしているユーザーへの読み込みを高速化するために、Google アプリ エンジンでエッジ キャッシュを使用したいと考えています。

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

関連: Web サイトのコンテンツの URL をブラウザーが記憶しないようにするにはどうすればよいですか。

4

2 に答える 2

3

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

更新: Google Cloud Storageの署名付き URL は短命になりました:

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

別の解決策は、動的ハンドラーから巨大なファイルを提供することです。ただし、これは多くの CPU と帯域幅を消費します。また、引き続きGAE クォータによって制限されます。

関連: ブラウザーが訪問した URL やその他の種類の履歴を記憶するのを防ぐことはできません。特定のブラウザーとユーザー設定にのみ依存します (アプリ/javascript/その他にはアクセスできません)。ユーザーに尋ねることができる唯一のことは、ログアウト時に履歴、Cookie などをクリアすることです。

于 2012-03-15T14:22:00.840 に答える
1

appconfigで有効期限を設定できます

申し訳ありませんが、ドイツ語のリンクがあります(試してみてください。Googleがあなたの言語に切り替えるかもしれません) http://code.google.com/intl/de-DE/appengine/docs/java/config/appconfig.html

有効期限が切れていない限り、ブラウザはファイルをローカルにキャッシュできます。これにより、ロード時間が短くなります。ただし、キャッシュが小さすぎる場合、ブラウザはファイルを再度要求します。

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

ユーザーが 3 番目のユーザーにログインを許可すると、それらのユーザーは常に保護されたファイルにアクセスできます。

リンクを覚えるのを避けることはできないと思います。ある意味、上記と矛盾しています。

于 2012-03-20T20:18:22.620 に答える