PDFやMS-Wordファイルをキャッシュに残さないようにするには?

[上に] [前に] [次に]
やったん [E-Mail] 2000/02/22(火) 09:22:34
過去にもいろいろ議論されてるようなのですが質問させてください。

社内イントラ用にアクセス制限をかけたWEBページを考えています。
共用PCもあるのでブラウザに表示された内容がキャッシュに残ると
まずいと思い調べてみるとno-cacheやExpiresで何とかなりそうだと
わかりました。(ブラウザに依存するようですが・・)

しかしPDFやMS-Wordファイルを表示した場合もキャッシュに残って
しまい、これを防ぐ方法はないでしょうか?

キャッシュしないようにすることが無理なら、ブラウザを閉じる
ときや、windowsをログオフするときなどにキャッシュを削除する
方法でもいいのですが、どなたかお教え願えないでしょうか?

無責任官庁 2000/02/22(火) 11:05:10
***   ブラウザの設定で対処する   ***
IEの場合は、「インターネットオプション」の「全般」タグ
にある「インターネット一時ファイル」の「設定」ボタンを押し、
“保存してあるページの新しいバージョンの確認”の選択項目のうち、
「ページを表示するごとに確認する」か、
「InternetExplorerを起動するごとに確認する」を選択する。

NNの場合は、「設定」メニューを開き、
「詳細」のツリーの下にある「キャッシュ」を開き、
“キャッシュしたドキュメントとネットワーク上のドキュメントとの比較”
の選択項目のうち、
「セッション毎」か「毎回」を選択する。
か、キャッショ容量をゼロに設定する。
--------------------------------------------------
という設定を、クライアントの皆さんにしていただく方法がありますが。
但しこれは、キャッシュしてしまうのは完全に防げないので、
次に開く時にどうしよう…という設定です。
(NNのキャッシュゼロが完璧なら、NN専用サイトにしちゃえば
問題無いような感じもしますけど…)

>windowsをログオフするときなどにキャッシュを削除する
これは、Winの標準設定で出来るかどうか知りませんが、
終了時にテンポラリやごみ箱の中身を消すとかいうフリーソフトがあったような気が…
NT の標準の場合は、WINNT\Temporary Internet Files フォルダの中身がソレなんで、
終わるときにそれをカラにするようにしたらいいかと…
(自信なさげ)

>共用PCもある
これの意味が分かりませんが。PCが共有でも別のログインならば、
設定も別だと思います。
ログインさえも同じだというならば、アクセス制限どうこう以前の話
とも思えますけど…

>PDFやMS-Wordファイルを表示した場合もキャッシュに残って
表示どころかそのまま保存されちゃったら、苦労した甲斐が
全くなくなりますね。その点は考えていないんでしょうか。

というわけで、いまいち使えない発言で申し訳ないです。

やったん 2000/02/22(火) 11:54:48
>終了時にテンポラリやごみ箱の中身を消すとかいうフリーソフトが
>あったような気が…
適当なのがないか探してみます。ありがとうございます。

>これの意味が分かりませんが。PCが共有でも別のログインならば、
>設定も別だと思います。
PCは共有でもwindowsログインは別なのでブラウザの設定も
別だと思います。ただ、例えばあるページを見る権限をもつ
Aさんがログインして表示させた後、同じPCで権限をもたない
Bさんがログインするとページ自体は見れなくてもキャッシュに
残ったHTMLやWordファイルは見えてしまうと思うのでこれを
防ぎたいのです。

>表示どころかそのまま保存されちゃったら、苦労した甲斐が
>全くなくなりますね。その点は考えていないんでしょうか。
見る権限がある人が表示、保存することは全然構いません。
(保存した後、誰かに見られてもあくまで本人の責任)
でも、キャッシュに残ってるのを他人に見られるのはシステムの
責任にされてしまうので何とかしたいのです・・・

やったん 2000/02/23(水) 10:23:22
レスがないということは、やっぱり無理なのでしょうか・・・

Selly 2000/02/24(木) 07:47:45
クライアント側のOSは何でしょう?

NT系ならキャッシュフォルダのアクセス権設定でなんとかなりそうですが…。
Win9xならまず無理でしょう。

>windowsをログオフするときなどにキャッシュを削除する

IEならインターネットオプション→詳細設定でそういう設定ができます。

やったん 2000/02/29(火) 08:36:57
>>windowsをログオフするときなどにキャッシュを削除する

>IEならインターネットオプション→詳細設定でそういう設定ができます。

IE5でブラウザを閉じるときにテンポラリをクリアする設定がありました。やりたいことはまさにこれなのです。

この設定をユーザー1人1人が間違いなくやってくれればよいのですが、
クライアント側での設定なので、設定し忘れや設定間違いが考えられます。

そこで、
1.ブラウザを閉じるときやページを移動するときなどに、
ブラウザの設定(テンポラリクリア)をONにする
2.設定をONにして変更できないようにする。
などを考えてみたのですが、どうもうまくいく方法がみつかりません
でした。

このようなことが実現できないものでしょうか?
(できてしまったらこわい気もしますが・・・)

EMI 2000/02/29(火) 11:36:58
それは無理でしょう。
仮に実現できたらえらい迷惑ですよ。
キャッシュに入ってるのは、あなたのファイルだけじゃないんですから。

やったん 2000/02/29(火) 13:14:49
>キャッシュに入ってるのは、あなたのファイルだけじゃないんですから。

それでも構わないから、どーしても消したいということで・・・

コウノトリ 2000/02/29(火) 13:23:33
ブラウザ・メーカーはこのようなセキュリティホールをなくそうと努力しています。ですから無理です。

無責任官庁 2000/02/29(火) 13:57:23
> それでも構わないから、どーしても消したいということで・・・

一般にあるIEとかNNでってのは、不可能でしょ。
ブラウザとして「やったらまずい」機能のうちの一つなんだし。
(セキュリティホールあると、すぐまわりから叩かれるし)

本気でやりたかったら、HotJava か Mozilla のソースを入手して
自分でカスタマイズ、もしくはブラウザを自作…して、社内に配布。
で、そのブラウザでしかアクセスできないサイトにする…
しかないでしょうね。

新型i-mode みたいに、端末のキャッシュサイズがサーバーで分かると、
結構イイかもしれないですけどね。
(それによって処理分けができるしね)

EMI 2000/02/29(火) 15:29:01
>それでも構わないから、どーしても消したいということで・・・
だから、ユーザーがかまうんです。
もしよく行くサイトのトップに大きなCGが貼られていた場合、毎回ブラウザ終了時にキャッシュがクリアされたらどうなりますか?

やったん 2000/02/29(火) 15:31:25
>ブラウザとして「やったらまずい」機能のうちの一つなんだし。
やっぱりそうですよね・・・。

>本気でやりたかったら、HotJava か Mozilla のソースを入手して
>自分でカスタマイズ、もしくはブラウザを自作…して、社内に配布。
その手があったか!!
と思ったのですがいかんせん知識不足、能力不足・・

>新型i-mode みたいに、端末のキャッシュサイズがサーバーで分かる
>と、結構イイかもしれないですけどね。
せめて、”ブラウザを閉じた時Temporary Inernet Filesフォルダ
を空にする。”がONになってるかどうかわかれば、それによって
ページ表示する、しないを判定できるのですが。

Yosh 2000/02/29(火) 23:18:56
ちょい趣旨と反してすんまへんが
「CGIの結果がキャッシュされて困る」という場合
わしは、hiddenでもQueryStringでもええからアクセス時の年月日時分秒
を追加してやる事で、回避するやり方があるけど、、、
PDFなら、QueryStringで出来るかなぁ、、、

やったん 2000/03/01(水) 08:43:39
>「CGIの結果がキャッシュされて困る」という場合
>わしは、hiddenでもQueryStringでもええからアクセス時の
>年月日時分秒を追加してやる事で、回避するやり方があるけど、、、

私がやっているのはHTMLで
<a href="file1.pdf">ファイル1</a>
<a href="file2.doc">ファイル2</a>
としているだけです。
(アクセス制限は別の方法で実現されていると考えてください。)
それで、pdf、wordなどのファイルをブラウザで表示した場合
1.キャッシュしない。
2.表示中はキャッシュされても構わないが、表示後ブラウザを閉じるときなどにキャッシュを削除する。
3.IE5でキャッシュを削除する設定になっているかチェックする。
のどれかを実現できないか考えています。

なので、CGIとはちょっと違うのですが、上記の方法が私には
よくわかりませんでした。参考までに、差し支えなければ詳しく
教えてもらえないでしょうか。

Yosh 2000/03/01(水) 23:18:58
うんとやな、、、
上記の例ならば、
<A HREF="file1.pdg?YYMMDDHHMMSS">ファイル1</A>
としてやるわけやな。。YYMMDDHHMMSSは年月日時分秒を
セットしてブラウザに渡してやるわけやな。ただ、
当方に確認する方法が無い(PDFを作る環境がない)
ので実際はわからんが、、、

原理は簡単(推測だけど)
ブラウザはキャッシュにないURLはサーバーに取りに
行くという特性を逆に利用して、新たなURLを擬似的
に作ってやればサーバーに取りに行くわけやな。ここで
言う擬似的というのを、ここでは年月日時分秒で実現し
てるわけや。だから
<A HREF=file1.pdf?000301125433>ファイル1</a>
としてリンクする時と
<A HREF=file1.pdf?0003011254<blink>34</blink>>ファイル1</a>
として1秒ごとにURL(この場合はQueryString)を
変えてやれば、ブラウザは、「あれ?知らないURLだな。
サーバーに取りにいくべ」となるわけやな

Yosh 2000/03/01(水) 23:20:08
あかん、、タグが無効やった。。。
<A HREF=file1.pdf?000301125433>ファイル1</a>
<A HREF=file1.pdf?000301125434>ファイル1</a>
で1秒ごとにURLを変えるって事や

Yosh 2000/03/01(水) 23:22:38
1秒ごとにURLを変えるってのは
リアルタイムって事でなく、アクセスした
時の時間でええのや。つまり2度と同じ
URL(QueryString)にしてやる事が
目的やさかい、、誤解せんといてや

Yosh 2000/03/01(水) 23:23:28
なんとあほな、、、、

上のは
「2度と同じにならないURL」が正解

wosamu 2000/03/02(木) 01:53:44
ログオン・ログアウト時に削除するっていうのが
良いと思うのですけど。
サーバ側でやってしまうと、共用以外のPCでも
キャッシュ消してしまって不経済ですよね。
Windowsのヘルプとかみるとやり方はわかるの
じゃあ無いかと思います。

私としてはセキュリティのかかったディレクトリに
アクセスできる人間とできない人間がPCを
共用している環境が変だと思うのですけど。

やったん 2000/03/03(金) 12:21:31
Yoshさん、ありがとうございます。参考にします。

wosamuさん、
>ログオン・ログアウト時に削除するっていうのが
>良いと思うのですけど。
>サーバ側でやってしまうと、共用以外のPCでも
>キャッシュ消してしまって不経済ですよね。
スタートアップでバッチか何かで消そうということですよね。
そうなんですが、ユーザー全員がきちんと設定してくれない可能性
があるので、できればサーバー側で何か仕組みができないかと思って
いるのですが・・・。
または、ログアウト時に必ず消せるような設定ができればいいかな。

>私としてはセキュリティのかかったディレクトリに
>アクセスできる人間とできない人間がPCを
>共用している環境が変だと思うのですけど

そのとうりなのですが、現実にはセキュリティのかけ方も複雑だし、
全員が1人1台PCがある環境ではないので。

うーん。どうも難しそうですね〜。

[上に] [前に] [次に]