- 公開日:2015年06月11日
- 最終更新日:2015年06月11日
記事概要
「マウンテンチャンネル」のwebアプリを公開して二か月が経過しました。
そろそろサイトのグロースハックを開始しようとGoogle Analyticsを起動したところ、流入元にスパムボットアドレスがずらりと並んでいました。
これでは解析をするのが大変です。というわけで、スパムボットの対策をすることにしました。
スパムボットの対策方法
スパムボットの対策方法は以下の二通りです。
- Google Analyticsでフィルターの設定をする
- ウェブサーバで除外する
Google Analyticsでフィルターを設定するのは、性質の悪いスパムボッドが存在するからです。
それは、Google AnalyticsのUA-XXXXXXXX-XのトラッキングIDを拾って、直接Google Analyticsのセッションを偽装しにやってくるスパムボッドです。
なので、万全を期すためにGoogle Analyticsとウェブサーバの両方の対策をしておくべきです。
今回はウェブサーバ(nginx)を使ってリファラスパムボットを除外する対策方法説明します。
環境
- centos6.5(vagrant)
- nginx1.6.1
- ruby2.2.2, rails4.2.1
リファラスパムボットの調査
アナリティクスを利用したところ、以下のリファラスパムボットを発見しました。
free-social-buttons.com best-seo-offer.com buttons-for-your-website.com www4.free-social-buttons.com www2.free-social-buttons.com 100dollars-seo.com
上位10件中6件がスパムとか、何も分析できませんね...。
『/etc/nginx/conf.d/spambot.conf』の生成
リファラスパムボットを除外するspambot.confを用意します。
# リファラスパムボットのアクセスでない場合は「0」を維持する set $spambot 0; # リファラスパムボットそれぞれの判定 if ($http_referer ~* (4webmasters.org) ) { set $spambot 1; } if ($http_referer ~* (76brighton.co.uk) ) { set $spambot 1; } # 中略 # 最後に403を返すif文を追加する if ($spambot = 1) { return 403; break; }
リファラスパムボットはこちらのサイトの一覧を利用させていただきました。
『100dollars-seo.com』だけは存在しなかったので追加しました。
また、せっかくなのでこの記事にspambot.confの全コードを記載しました。
こちらは私がリファラスパムボットを増やす対応をしたときに、逐一更新していきます。
『/etc/nginx/conf.d/spambot.conf』の読み込み
nginx.confのロケーション部で読み込むように設定します。
# Load config files from the /etc/nginx/conf.d directory # The default server is in conf.d/default.conf include /etc/nginx/conf.d/*.conf;
if文があるので、ディレクティブの中にファイルを置きます。上記のサンプルではhttpディレクティブの中でファイルを読み込ませています。
nginxの再起動
上記の設定を終えたら、nginxの再起動をして設定を反映させます。
sudo nginx -s reload
エラーなしで再起動に成功すれば設定は成功です。
また、スパムボット対策は基本イタチごっこなので、なるべくchefを使って自動化することをおすすめします。
chefなら以下のように設定します。
template "spambot.conf" do path "/etc/nginx/conf.d/spambot.conf" source "spambot.conf.erb" notifies :reload, "service[nginx]" end
以上
次はGoogle Analyticsの設定方法を記載します。
0 件のコメント:
コメントを投稿