dorayakiBlog

リファラーのアクセスを制限する

どんな種類のアクセスがあったかというアナリティクス解析で、
たまに参照元のメディアで、referral というパラメーターのアクセスが表示される。

例えばそのパラメーターは、
参照元 / メディア
というように表示される。
参照元は、Google や Yahoo などの検索サイト・SNS・直接アドレス入力、など自サイトへの流入経路となるアクセス元をアドレスや通称で示す。
メディアは、検索からのアクセス・アドレスの直接入力からのアクセス・その他の共有サイトなどからのアクセスの種類を示す。

Google検索からならば、
google/organic 。

リンクやアドレス直接入力からのアクセスならば、
direct/none となり、

Facebook からなら、
facebook.com/referral 。

Twitter からなら、
t.co/referral となる。

そのとき、Web上を単に巡回しているだけのようなアクセスもあったり、Facebook や Twitter からのアクセスも referral になるし、あまり聞いた事のない共有だか検索だかのサイトからのアクセスもほんのごく少数だったのでそれほど気にしてはいなかったのだけれど、同一サイトからにもかかわらず何十か国から数十のアクセスがあったかのようにアナリティクス上に表示されたアクセスがあり、かつ滞在時間がすべて0秒・閲覧ページ数1ページという、あきらかに純粋な検索や共有などのアクセス以外からの、推測ではあるが、たちの悪い宣伝などの種類であろう機械的なアクセスがあった。

こういったアクセス元のサイトへの誘導が目的であったり、悪質な場合はマルウェアに感染させられるおそれもあったりする。 とはいえ、放っておけば直接危害をこうむる事は少ないのだろうが、ただアクセス解析にこのような数字を含めるとどういう種類のアクセスがあったかが読みづらくなるので、.htaccess という拡張子のファイルを作り、
(.htaccess という拡張子のファイルが作れないエディタなら、.htaccess.txt という拡張子の単純なテキストファイルを作り、サーバにアップし、サーバ上でそのファイルを .htaccess の拡張子に変更する)

SetEnvIfNoCase Referer 拒否したい相手のサイトアドレス spammer=yes  ↵ 
Order Allow,Deny  ↵ 
Allow from All  ↵ 
Deny from env=spammer


SetEnvIfNoCase Referer www1.social-buttons.com spammer=yes  ↵ 
Order Allow,Deny  ↵ 
Allow from All  ↵ 
Deny from env=spammer
(書き方やそのオプションは他にいくつかある)

と書き、アクセスさせたくない自分のサイトのファイルと同じディレクトリ(フォルダ)内に並べて置いておくと .htaccess がファイルへのアクセスを制限してくれて、意図不明なアクセスを防いでくれる。 上記の例のアドレスを制限したが、なぜか12時間おきに再度大量のアクセスがあった。

* 上記の例として挙げたアドレスが件のサイトなのだけれど、そのアドレスを制限してみたが、なぜかまた12時間おきに大量のアクセスがあった。
以前にあった他の不特定なアクセスは制限できていたのでおかしいと思い、あまり訪問・閲覧しないほうが良いのだけれど、仕方ないのでそのサイトへ行ってみた。
上記のアドレスにアクセスすると sharebutton.com というサイトへ飛ばされたので、そちらのリダイレクト先のページのアドレスで制限をかけてみたら、その大量のアクセスは止んだ。
しかしこういうやり方をされるとこの方法では、そのサイトに行かずにという条件では防ぎづらいので、アナリティクス解析のほうのフィルタで制限をかけて表示されないようにする事で防ぐしかないのだろう、面倒だけれど。