mushi

IT関連のサポートに携わる変人が微弱な電波を発してます。
ビビビビビッ!

URL変更のお知らせとお願い 当サイトのドメインが変更となりました
http://zxvf.homeip.net から http://zxvf.stzo.net に変更となります。
当サイトにリンクしていただいている方々にはご面倒ですが変更をお願いいたします。(2014/4/7)

東京の電気使用量:2015-03-03日 7時現在 77.2%77.2% 3700万kW / 4795万kW  約77.2%
今日の運勢は: 大吉
絶好調だよ (~o~)/
本日1 回目の閲覧
ありがとう!
Web Services by Yahoo! JAPAN

IE9が普及するにあたってサーバ運営で注意しなければいけないこと


IE9が普及するにあたってサーバ運営で注意しなければいけないこと。IE9で気になっていた問題がある。IE9になってからページキャッシュの扱い方が変わったようで、 認証をしたページで静的なページの場合にはキャッシュされた内容...



IE9で気になっていた問題がある。IE9になってからページキャッシュの扱い方が変わったようで、
認証をしたページで静的なページの場合にはキャッシュされた内容を表示して実際のアクセスは行われないようになった。

これによって特定のサーバの設定によってはちょっと嫌な問題が出てくる。

例えばBasicやDigestの認証をかけたディレクトリにテキストファイルや画像やPDFや単純なHTMLのページなどを置いておいて、
一旦IDとパスワードで認証してページ内を表示するとキャッシュされる。

次回IE9再起動でもOSの再起動でもしてもう一度その認証されたページを表示しようとすると、
以前のキャッシュが残っていて実際のアクセスはせずに認証も無しにキャッシュの内容を表示する。
これは認証の無い普通のページでも同じで、ページの表示を早くするために実際のデータ転送せずにキャッシュを表示するよう仕様が変更されたようだ。
ただし、動的にアクセス毎に書きだす動的ページは問題なく以前と同じように動作してくれるので安心。

IE8までは一旦IE8を終了してもう一度表示するとちゃんと認証ダイアログが出てくれていたのだが、IE9からは変わってしまった。

オプションからパスワードやフォームデータの削除をしても意味はなく、キャッシュの削除をしない限り認証なしで表示できてしまう。

これによって、自分のPCでも他人のPCでも公共のPCでもちょっと拝借したPCでも、
一旦認証ページを表示してしまうとそのPCにキャッシュが残って誰でも簡単に履歴をクリックしてそのデータを閲覧することが出来るということ。

IE8やFirefoxなどではこの問題はない。
またchromeもIE9と同じように認証なしに表示はされるのだがちょとわけが違う。
chromeの場合はプロセスが常駐していて窓を閉じても実際には落ちていないので、次回開いても認証情報を覚えている。
なので再起動したり、上がっているプロセスを一旦落とせば普通のブラウザと挙動は同じ。
IE8までと他のブラウザは同じで、IE9だけが特別ということになる。

これは仕様ということでMSのサイトに書いてあった
http://support.microsoft.com/kb/2530998/ja

そうなると認証内のページに個人情報など静的ファイルに置いていたりしたら大変な事になるのは容易に想像できるだろう。
まあそんな大事なデータはSSLでやっているだろうからそんなに心配は無いのかもしれないが、
世の中結構アバウトなこことやってるとこもあったりしてあながち安心はできない。


でもって、その対策だが、apacheの場合はヘッダにキャッシュしないよう記述してあげることでキャッシュされずにこの問題を回避できる。

.htaccess に下記のように記載すれば良い。
(ディレクトリ全てのキャッシュをさせない場合)
Header set Pragma no-cache
Header set Cache-Control no-cache

(特定のファイルをキャッシュしないようにする場合)
<files ~ "\.(html|php|txt|jpg|png|gif|zip|inf|pdf)$">
Header set Pragma no-cache
Header set Cache-Control no-cache
</files>

ディレクトリに置いているファイルの拡張子をひと通り入れておく。

またキャッシュを許可する時間を指定することも出来る

Header set Cache-Control max-age=300


htaccess でこの Header を指定するには Apache のモジュールが組み込まれている必要がある。
CentOS の場合は headers_module が読み込まれているか。
Debian であれば /etc/apache2/mods-enabled/headers.load があるか。
(無ければ sudo a2enmod headers して reload )

しかしこれからヘッダを読まないブラウザなど出てくる可能性も高いので、認証して扱うようなデータはちゃんとSSLして使ったほうがいいのかもしれないね。




▼ この記事へのコメント ▼
困っている人が多いようなので参考までに。
例えば普通のhtmlなページでも中の画像やflashなどをファイル名は変えずに差し替えたりしてもie9は昔のキャッシュを表示してしまう。
なので画像差し替えとかの場合でhtmlに変更の必要が無くても保存の日付を変更してやらないと
IE9は変更なしとみなしてアクセスせずに昔のキャッシュを表示してしまうのです。
必ずちょっとでも変更して本体のhtmlファイルを上書き保存しましょう。
あとフォームのページなんかもちゃんと対策しとかないとキャッシュが表示されちゃうから注意ね。
rewriteエンジン使ってhtmlとかでアクセスさせてる場合も注意が必要ですよ。

< 過去の記事 [ 3月の 全てのトピック リスト ] 新しい記事 >
via IPv4

twitter

●→ トップページ

03/03(Tue) 08:06:26
サイト内検索
 

トピックのカテゴリー

全てのトピック
今日の思考回路
趣味について
ニュース!
Technical
Linux
OSX
その他いろいろ

みんなのリンク

全てのリンク
ニュース
アミューズメント
生活
Tools
Windows
OS X
Technical
その他のリンク
MACアドレスで位置情報検索

Archives


新しいトピック
最新:01/26 15:09


Valid XHTML 1.0 Transitional

Syndicate this site(XML)
RSS1.0(RDF)
RSS2.0(RSS)

SpecialThanks

010450772


....   

(>_<)
 目
 的
 の
 ペ
 |
 |
 ジ
 は
 左
 の
 サ
 イ
 ト
 内
 検
 索
 窓
 か
 ら
 探
 せ
 る
 よ
Copyright (C) 2005-2015 Amato. All rights reserved.