IP Geo Blockを使ってスパムコメントを撃退する方法

はじめに

インターネットで何らかのリソースを公開していると、必ずと言っていいほどスパムとか、荒らしとかがあり応対するのもめんどくさいなと思う時に私が取る方法をメモしておきます。

構造を理解し元を断つ

Spamは書き込んでくる方からしたら、それなりの正当性があってやっているのかもしれませんが、Webサイトを運営する方からしたら迷惑な話です。

seiribako.netのコメントは、管理者たる私の承認なしには表示されないので、このよくわからないコメント達が当サイトを参照される方の目に触れることは無いのですが、それでも迷惑な話です。

Spammerは、色々なアプローチでSpamコメントを書き込んでくるので、一見対処するのが面倒臭そうな気もしますが、仕組みさえ整っていれば、大した知識も必要なく抑えることができます。

こちらが最近当サイトに登録されたSpamコメントです。

管理画面から見たSpamコメント

書き込んでいる内容は、当サイトの内容とは全く関係のない薬か何かの話で、当サイトを訪れた人をそちらに呼び込もうとしています。

コメントを残した人の名前や、メールアドレスも異なるので、全然別人のように見えるかもしれませんが、これは二人の人が別の名前を語ってコメントを登録していることが、一瞬でわかります。

答えは、各コメントのメールアドレスの下あたりにある数字の羅列です。インターネット通信の基礎となるIPアドレスというものがこれなのですが、これはインターネットに接続しているすべての端末に割り振られています。

数字の意味するところなどの詳細は、調べればいくらでも出てくるので、ここでは触れませんが、この数字の羅列を使って、そもそもSpammerに書き込ませないことはできないのか?というのが発想です。

IP Geo Blockでアクセス元をBlock

WordPressのPluginでセキュリティ関連で有名なものなら、きっとだいたいこの機能は実装されていると思いますが、当該のサイトにアクセスしてくるアクセス元のIPアドレスを条件にアクセスを拒否することができます。

以下が、当サイトのIP Geo Blockの設定画面の一部です。

IP Geo Blockの設定画面

重要なのは、Matching ruleとBlacklist of extra IP addresses prior to county codeの部分です。

Matching Ruleに関しては、相当限られた人だけに情報を公開したいサイト以外であれば、基本的にはBlacklistが妥当かと思います。これは、後の条件欄に、アクセスさせたくない条件を記載していくアプローチです。

例えば、Blacklist of country codeにAU,CNと書いてありますが、これは、オーストラリアと中国からのアクセスを拒否するための条件です。

同じように、Blacklist of extra IP address prior to county codeという欄にはCountry code的にはBlacklistに載らないものの、個別のIPアドレスやNWアドレス単位でアクセスを拒否したい場合にここに記述します。

例えば、今回のSpammerの場合は、IPアドレスが62.210.207.209と195.154.242.89の二つなので、この二つをここに登録すれば、もうこの二つのIPアドレスからは、当該のサイトにアクセスできないので、Spamコメントを書き込まれることもありません。

また、今回の場合は個別のIPアドレスを2つ登録するだけで済みましたが、アクセス元のIPアドレスがある程度の範囲でばらけている場合は、5.188.84.0/8の様な形で範囲で指定することもできます。

範囲で指定する方は、一般の方には馴染みのない記載方法ではありますが、業界では一般的な方法です。これを説明するのは手間がかかる&インターネット上でいくらでも説明してくれている人がいるので、ここでは触れません。

最後に、こうやってIPアドレス単位でアクセスを拒否していると、そのうち誰も自分のサイトにアクセスすることができなくなってしまうのでは?という疑問も浮かぶかとおもますが、まぁ、それは杞憂なので気にしなくても大丈夫です。それは単純に、世の中に存在するIPアドレスは、そんなものじゃフィルタし切れないぐらいの量があるためです。

まとめ

  • IP Geo Blockを使ってSpamコメントを根本から立つ方法をまとめました
  • こういったことは基本的にはいたちごっこなのですが、それでも自分のサイトの健全性を保つためには、ある程度意識した方が良いことではあると思います

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA