Facebook 大量アクセスへの対処

ちらほらFacebook で「Like」を押してくれる人があるようで、嬉しいなーと思っていたところですが、先日からそれが増えました。ほんの少しですけれども。

いやいや嬉しいなーと思っていたのですが、今日になって大量アクセスとなりました。

数度のアクセスならページが表示されないとかブラウザをダブルクリックしてしまったのかなーとか、あるいはサイトが混み合っているという表示が出てしまったのかなーと思うところですが、尋常ではない数になってきたので緊急メンテナンスとして調べることにしました。

調べると「 ~/archives/2292?fb_xd_fragment 」のようなリクエストになっているのですが、「?fb_xd_fragment」が気になります。名前からすればFacebook だろうことはわかります。

調べたところ、IE6、IE7 でiframe 要求がループしているなどという情報がありました。

検証した環境はChrome でしたが、ページが真っ白になるなどという現象は同じでした。

さて、どうするか悩むところですが、.htaccess で次のようにしました:

<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /

## type1
# RewriteCond %{QUERY_STRING} ^(.*)fb_xd_fragment=?[a-z]*&?(.*)$ [NC]
# RewriteRule ^(.*) /$1?%1%2 [R=301,L]

## type2
 RewriteCond %{QUERY_STRING} ^(.*)fb_xd_fragment
 RewriteRule ^(.*)$ /$1? [R=301,L]
</IfModule>

どちらも 「~/archives/2292?fb_xd_fragment」が来た時に「~/archives/2292」へリダイレクトします。

ただ、検証環境では期待した通り「?fb_xd_fragment」を取り除いてくれるのですが、サーバー環境によっては「/」へ301 になってしまうものもあるようです。

もちろんカリカリに書けば完全に思い通りに動作してくれるでしょうが、すべてのリクエストパラメータを知っているわけではないのでこの辺にしておきます。

.htaccessでパラメータつきのURLをパラメータなしのURLにリダイレクトする方法 – F.Ko-Jiの「一秒後は未来」」などを参考にさせていただき、type1 は「Facebook いいね!ボタンを狙った不正アクセス « headquarter | iconcept」 をベースにしています。

あと、関係無いですが、コードと画像のCSS を追記しました。

/* seeck.jp add */
div.entry p img {
 border: 1px solid #333;
 padding: 3px;
 border-image: initial;
}

pre {
 background-color: rgb(225,225,225);
 padding-top: 5px;
 padding-bottom: 5px;
 padding-left: 7px;
 padding-right: 5px;
}

※記載した.htaccess は暫定対処の内容であり、利用または使用等により起因または派生する事象等に対し、一切を免責とさせて頂きます

(自サイトなどでの情報収集やテストが完了すると、これらの情報はお客様サイトの保護のためにフィードバックされます)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です