Internet Explorer 6 をアクセス制限するためのプロキシ・サーバー node.js CoffeeScriptで動作します。
npm install -g coffee-script
npm install -g forever
git clone https://github.com/bathtimefish/ie6-proxy.git
cd ie6-proxy
npm install http-proxy
main.coffee をテキストエディタで開いて、 allowedHosts
にアクセス許可したいホストを配列で設定してください。
forever start -c coffee main.coffee
forever stop -c coffee main.coffee
テストサーバーはこちらです。 http://ie6-proxy.c.node-ninja.com:6666/ このテストサーバーでは、www.google.co.jp , www.yahoo.co.jp 以外にアクセスすると HTTPエラー 403 アクセス不可 となります。 設定のしかたは以下のとおりです。
- Internet Explorer 6 を起動します
- [ツール] -> [インターネットオプション] をクリックします
- 接続 タブをクリックします
- LAN の設定(L) をクリックします
- LAN にプロキシ サーバーを使用する(これらの設定はダイヤルアップまたは VPN接続には適用されません)(X) にチェックをいれます
- アドレス(E): 欄に http://ie6-proxy.c.node-ninja.com を入力します
- ポート(T): 欄に 6666 を入力します
- OK ボタンをクリックします。
- インターネット オプション ダイヤログのOK ボタンをクリックします
現時点でMicrosoft社はWindowsXPのサポートを2014年4月8日までとしており、それ以降WindowsXP使用することは同社のサポート対象外となります。 Internet Explorer 6(以下、IE6)は主にWinodowsXP上で動作しており、Windows Vista以降では動作しません。つまり、WinodowsXPのサポート終了とともにIE6は利用されなくなることが予想されます。
しかし、現在でも企業等でWinodowsXPは利用され続けており、IE6もまたアップグレードされることなく利用されています。理由としてIE6でしか動作しない企業内ウェブシステムの存在があり、それを使い続けるためにOS、IE6がアップグレードされない(できない)といったケースが挙げられます。
ie6-proxyはこのようなケースにひとつの対策を示すために作成されました。ie6-proxyはIE6のユーザーエージェントを判断し、特定のホストにしかアクセスできないよう制御します。IE6では企業内システムのみにアクセスし、ウェブには最新のウェブブラウザでアクセスことで、IE6によるウェブブラウジングを抑制することを目的としています。
HTML5等のウェブ技術が進化していく中で、ウェブブラウザのアップデートも頻繁に行われています。ウェブブラウザのアップデートはウェブコンテンツ上で多くの便利な機能を利用可能とし、同時に高いセキュリティによる安全なブラウジングをユーザーに提供しています。
そのような中で古いバージョンのウェブブラウザを使い続けることは、基本的に推奨できないと考えられます。古いウェブブラウザ上では最新のウェブ技術を用いて作成されたウェブコンテンツが正常に表示されない可能性があります。また、セキュリティ性能も脆弱なため安全なウェブブラウジングを実現することが難しいからです。
さらに、古いウェブブラウザの利用はウェブコンテンツ制作にとってもデメリットをもたらします。例えば公共系のウェブサイト、大規模ECサイトなど不特定多数のユーザーが利用するウェブサイトの制作にあたっては、ごく小数利用されている古いブラウザでも正常に表示されるよう「 IE6対策 」と呼ばれるような対策に多大なコストがかけられるケースがあります。
このような対策では、古いブラウザのためでだけに代替コンテンツを用意する、古いブラウザでは動作しない利便性の高い機能の採用を諦めるなどのトレードオフが行われており、結果としてウェブ制作の難易度を上げ、費用、工数を増加させる原因となっています。
IE6に限ったことではありませんが、古いブラウザを利用する(させる)ことは利用者にウェブの利便性を十分に提供しない、最新のセキュリティを提供しないなどの不利益を与えます。 また、結果的に「 IE6対策 」などを強いることに加担することになり、利用者以外にも不利益をもたらすことになる。とも言えるかもしれません。
現在、IE6の利用は全世界で10%を下回っています。 http://www.ie6countdown.com/ WindowsXPのサポートが終了すればさらに多くが利用されなくなるでしょう。例えばIE6に依存しているシステムを持つ企業の多くはサポート終了までにシステムをアップグレードしてIE6の軛から開放されるはずです。しかし、ごく一部ではWindowsXP & IE6 は利用され続ける可能性があります。考えられるケースとしては、
- 企業がサポート終了に無自覚で、サポート終了後も利用され続ける
- システムのアップグレードが遅れ、サポート終了後も暫定的にIE6依存のシステムを使い続けざるを得なくなる
- Windowsはアップグレードされるが、システムはアップグレードされない。仮想クライアント等にセットアップされたWinodowsXPでIE6依存のシステムが利用され続ける
などが考えられます。1に対しては早期の啓発が必要でしょう。2についてはリリースを急ぐ努力が必要です。 3についてはシステム以降に多大な工数がかかる場合の選択として採用されることが考えられます。この場合、WindowsXPおよびIE6はサポート終了後も長期間にわたって利用される続けることが考えられます。
仮想クライアントでIE6を利用する。という方法はある意味現実的な選択だと考えられます。例えば仮想ホストの最新のIEをウェブブラウジング専用とし、仮想クライアントのIE6を企業内システム専用とする。このような運用方法を利用者に提供することができます。ベンダーサポートの切れたOSを利用することについての懸念は残りますが、運用的には方法のひとつと言えるでしょう。
ただし、このような方法を採用するときIE6でのアクセスは企業内システムのみに制限するべきです。利用者がうっかりIE6でウェブアクセスをしないように制限する仕組みが必要です。
IE6(古いウェブブラウザ)を企業内に閉じ込め、外に出さない。この考えかたは利用者にとってウェブアクセスの安全性と、全世界とウェブの利便性を共有するにあたって有効であると考えます。
ie6-proxyはIE6のユーザーエージェントを検知して、許可されていないホストへの接続を禁止します。 このような仕組みはファイヤーウォール等でも設定可能でしょう。高機能なファイヤーウォールであればie6-proxyよりも高度なアクセス制限が可能なはずです。
ie6-proxy は上記のような考えをもとにして、ひとつの方法を示すために作成されました。 IE6をはじめとする古いウェブブラウザの利用はすみやかに廃止されることが望ましいですが、そうはいかない事情もあると思います。その場合の対策の参考になれば幸いです。
いいえ。その時点で古くなり、利用が推奨されなくなったウェブブラウザ全てに共通する問題です。 本質的には現時点でIE7,8、旧バージョンのFirefox, Chrome, Opera, Safariなども同様です。
ここでIE6をターゲットにしているのは、直近でWindowsXPのサポート終了という明確なタイミングがあるからに過ぎません。 いま、IE6を具体的にどう扱っていくのかを考察することが、古いウェブブラウザについての認識を深めるよい機会だと思ったからです。
古いウェブブラウザについての認識と対策をより深く考えることは、ウェブの発展に貢献することだと考えます。
Masakazu Muraoka HTML5 WEST.jp