IE6関連:アクセス制限はできればしたくない(2)

 そこで「IE6 のアクセスを排除」となっていくんですが、排除だけなら簡単でも、IE6 なんだけどこれは違う、というのも分けないといけない。実際に実行したあと、それに引っかかってエラーになったアクセスログを眺めていたら、IE6 なんだけど業者ではないというパターンも発見。Internet Explorer6でのアクセスについて にも書いた二種を含め、以下のもの、

[Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; Tablet PC 2.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729)]

[Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 1.1.4322; .NET CLR 3.0.04506.30; InfoPath.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; OfficeLiveConnector.1.3; OfficeLivePatch.0.0)]

[Mozilla/5.0 (compatible; MSIE 6.0b; Windows NT 5.0) Gecko/2009011913 Firefox/3.0.6 TweetmemeBot]

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2; Lunascape 4.1.3)

[Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; Sleipnir/2.9.3) ]

[Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 6.12)]

 上記以外で ed(小中高等学校)と gr(任意団体) を除く属性 jp ドメインは通るようにしたかったんですけど、このブログを稼働させているサーバの制約でその書式が通らず、できませんでした。

 気持ちとしてはホスト名が著名な会社だったり大学だったりのときは、つまりどうも自分のパソコンではないパソコンからネットにアクセスしてる分だと思うし、自分のパソコンではないからブラウザの更新などできないとか、仕事で使ってる特注アドオンが IE6 までしか対応していないから更新できないとかあるんだろうし、そういう「IE6 を使わざるを得ない環境」から個人サイトにアクセスする必要はないと思うんですよね。公開してるという部分で制限は本意ではないという建前を貫きたい気持ちもあるのやらないのやら。単にこういうのをするのがパズルを解く気分で楽しいからだけかもしれない(笑) 日本のドメインなら管理者に日本語でメール出せますから、何かあっても意見は言える。

 IE6 でアクセスしたときに「弾かれたときに出る参考画面」を出してアピールしています。IE6 以下のときだけ表示させる設定は作れても、IE6 以下の時だけ表示させない設定はできないので、通常のエラー時に出すメッセージも出てしまいますが、それはあきらめました。自分のパソコンでネットにアクセスしてる方なら、それを読めば IE6 から卒業してもらえるのではないかと。

 今回、このやりかたの効果を確かめるために、IE6 の制限を開始した3月14日以来、それまでの .htaccess 内でのIP制限を全部外しています。結果、ブラウザ(+α)の制限だけで十分そうです。思わぬ効果として、スパムとは別個に規制していたウィルスバスタのURLフィルタ攻撃。あれらは IE6 としてやってきますので、一緒に弾けるようになったです。

 最後に .htaccess 内の実際の書式も書いておきます。Remote_Host が取得できればかなり良い感じになるんですけど、そこが少し残念。

SetEnv !Kyohi
SetEnvIf User-Agent “(MSIE [3456]\.[0-9])” Kyohi
SetEnvIf User-Agent “(MSIE [789]\.[0-9]|TweetmemeBot|Lunascape|Sleipnir|IEMobile|Windows CE|InfoPath)” !Kyohi
SetEnvIf User-Agent “(Commerce|Baidu|SocialMedia)” Kyohi
#SetEnvIf Remote_Host “\.(or|ad|ne|co|go|ac)\.(jp$)” !Kyohi

order allow,deny
allow from all

Deny from env=Kyohi

(1)まず変数を作りリセットしておきます。(この行はなくても問題ないです)
SetEnv !Kyohi

(2)IE3~IE6 だったら変数をセット
SetEnvIf User-Agent “(MSIE [3456]\.[0-9])” Kyohi

(3)IE7~IE9 or ほかいくつかの要素のときは(2)にマッチしていても変数リセット
SetEnvIf User-Agent “(MSIE [789]\.[0-9]|TweetmemeBot|Lunascape|Sleipnir|IEMobile|Windows CE|InfoPath)” !Kyohi

(4)(3)にマッチしても下記の要素を含んでいたら変数セット
SetEnvIf User-Agent “(Commerce|Baidu|SocialMedia)” Kyohi

そうしておいて、変数がセットされていたら deny します。たまにこれらに該当しないスパムが来たら、(2) ~ (5) の修正でいけるなら修正。パターンとして馴染まないならそれのみdeny に独立で追加する予定です。

 数十数百と IP を羅列して弾いていくよりスマートではないかと思います。でも一般的にそうしてないということはなにか「このやりかたはまずいよ」というのがあるのかもしれません。それに気がついたらまた他の手を考えることにします。

『IE6関連:アクセス制限はできればしたくない(2)』へのコメント

  1. 名前:信@媛 投稿日:2010/03/24(水) 21:51:06 ID:f3ff9eb27

    なかのさん、今日は愛媛会の研修部会とかがありました。ノートパソコン持って行ってたときに、今朝申請した分筆とメッチャ急ぐ建物表題の状況を確認…どうせ処理中なんですが。で、ふと気がついて確認したら、まだノートパソコンのブラウザはInternet Explorer6のままでした。やったー!と思って「なかのさんち」を見てみたら、警告文が出てきたものの内容は普通に読めてました。会議中だったので、あんまりじっくりではなかったですけど。
    Internet Explorer6、貴重かもしれないのでこのままにしておこうかなと思うんですが、ダメですかね。(^_^;)

    • 名前:なかの 投稿日:2010/03/24(水) 23:17:36 ID:b99952e2b

       あ、それはたぶん、排除しない IE6 なんだろうと思います。IE6 すべて蹴ってるわけじゃなく、IE6 でも「業者じゃなさそうなもの」は通過するようにしてます。確実に判断できるわけじゃないんですが。

       蹴らない IE6 でも、その「IE6 は旧式」のメッセージ(というかバナー)は出ます。

       IE は6までと7からでは「中身が違う」そうです。見た目とか使い方(ユーザーインターフェイス)を似せて作ってるってだけなんで、もうサポートもなくなり、公式に非対応なサイトが増えてきてるんで、乗り換えたほうがいいかな、とは思います。

       それよか、いま「百度 .htaccess」のキーワードで検索して入ってくる攻撃にサラされてます(^_^;)
       入ってくる人のIPは違うのに、検索キーワードがどれもそれなんです。延々とそれで入ってくる。全部 .jp で、しかも「一見普通のアクセス」なんで弾きようがないんだけど、偶然とは思えない量です。

      画像つけてみた。スクロールの先も同じように延々とこれが続いてます。

      • 名前:信@媛 投稿日:2010/03/25(木) 00:49:00 ID:b84529cde

        Internet Explorerも9が出てるそうですね。ノートパソコンの方でオンライン申請を普段やらないので、やらない=Internet Explorerを使わない…ってことなんですが、やはりいざっていうときのためにversion up(もうくどくなりましたが、ATOKはお利口さん)をやっとこうと思います。うーーん、この際 9が出てから3段飛びにしようかな。(^_^)b