2012-02-23 12 views
0

著作権上の理由から、特定のファイルがブラウザによってキャッシュされないようにします。私はあなたがPHPを使用してヘッダを変更できることを知っています:ブラウザキャッシュを完全に禁止する

header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past 

これは良いですか?誰もセキュリティの追加層を考えることができますか?リソースのURLにタイムスタンプを付加する

答えて

1

http://example.com/img.jpg?t=12234234 //append this in the server side 

これは、新しいリソース毎回だと考えるのは、ブラウザとサーバーを愚か者。毎回値が異なることを確認してください。これは、画像等の有効期限が切れた場合は、リソースがまだかかわらず、キャッシュに格納されている

Random Querystring to avoid IE caching

プレーンHTMLのように(私が間違っている場合は、誰もが私を修正)任意のリソースに適用されます。リソースの有効期限が切れたときにブラウザが行うことは、ユーザーがサイトを再度確認し、リソースを再ダウンロードしてキャッシュ内の既存のリソースを上書きするまで待機することです。ユーザーがそれを行うまで、それらはキャッシュから削除されません。


キャッシュを防止する別の方法は、接続でSSLを使用することです。デフォルトでは、ブラウザはSSLで保護されたサイトをキャッシュしません。復号化にかかるオーバーヘッドのほかに、なぜSSLが全面的に使用されないのかが主な理由の1つです。しかし、一部のブラウザではSSLキャッシングが可能です(私が知る限り、Firefoxはそうしています)。ユーザーのブラウザにリソースが送信されるという事実は変更されず、デバッガで傍受されたり表示されたりすることがあります。


上記の方法はすべてキャッシュを阻止できますが、誰もあなたの画像を盗まれることを防ぐことはできません。インターネットの考え方は、別のコンピュータからリソースにアクセスすることです。それはユーザーがそれらのリソースにアクセスしていると述べています。ブラウザに到着したものは、ユーザーの意志の対象となります。彼はそれを見て、ソースを見て、到着時にそれを傍受し、デバッガを使って見てもよい。

インターネット上のWebページに入れているものは、何百万ドルもの手紙を渡すようなものです。あなたが盗んだ人を見守ることはできません。相手の人が泥棒であるかどうかは分かりません。


画像が他人に所有されるのを避けるための愚かな方法は、大きな透かしを置くことです。

+1

このテクニックはしばしば[キャッシュ無効化](http://html5boilerplate.com/docs/Version-Control-with-Cachebusting/)と呼ばれます。 – AD7six

+0

名前があることを知ってうれしいです – Joseph

+0

レスポンスありがとうJoseph、しかし、これは私が探しているものではありません。ランダムな文字列をURLに追加しても、ファイルはキャッシュされたままです。言い換えれば、ユーザーは、キャッシュからファイルを簡単に取得して再配布することができます。私は最初にキャッシュを許可しないための防弾方法を見つけることを望んでいます。 –

関連する問題