WordPressのコメントスパム対策のいろいろな手法

  • 投稿 : 2016-09-02
1.プラグインを使う方法
2.「.htaccess」を使う方法

海外IPをはじくのが一番効果的だと思う。レンタルサーバー側で提供している場合が多いので、その機能ではじくのがよいと思う。標準で、はじく設定になっているところもある。

1.プラグインを使う方法

Advanced noCaptcha reCaptcha

Advanced noCaptcha reCaptcha — WordPress Plugins

Googleの文字入力不要のreCAPTCHAをコメント欄につけれるプラグイン。「ロボットではなく人間であることを証明します」とかいうやつです。たぶん、強力。

Akismet

Akismet — WordPress Plugins

かなり強力でお勧め。ただし、格安レンタルサーバーかつ、コメントスパムが多い場合はかなり負荷がかかる。というのは、結局コメントを振り分けするが、全てDB(MYSQL)に書き残すので負荷が高くなる傾向にある

Throws SPAM Away

Throws SPAM Away — WordPress Plugins

コメントに日本語がないとはじく等の設定ができる。その場合は、DBに書き込まないでスルーするので格安サーバーでも負荷がかかりにくいとは思う。Akismetとの併用・連携も可能。機能は盛りだくさんで、いろいろ設定できる。

Simple AntiSpam

Simple AntiSpam — WordPress Plugins

コメントに日本語がないとはじくころができる。Akismetとの併用・連携も可能。こちらはシンプルで設定も分かりやすいと思う。

IP Geo Block

IP Geo Block — WordPress Plugins

コメントを国コードで遮断できるので、海外からのコメント投稿を拒否したいなどをプラグインでやりたい時などに便利。

2.「.htaccess」を使う方法

海外IPからのアクセスを拒否する

<Files wp-comments-post.php>
order deny,allow
deny from all

allow from 1.0.16.0/20
allow from 1.0.64.0/18
#
#海外IPを列挙する
#
allow from 223.223.208.0/21
allow from 223.223.224.0/19
</Files>

海外からコメントを書けなくなってもよいのなら、一番効果がある方法です。SPAMの多くは海外IPです。

IPアドレスで日本国外(海外/外国)からのアクセスを制限する.htaccess CGI's

海外IPアドレス一覧は上記から取得して、コピペすればOKです。

リファラーの無いアクセスを拒否する

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*example.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) http://%{REMOTE_ADDR}/$ [R=301,L]
</IfModule>

参考:ブルートフォース攻撃 - WordPress Codex 日本語版

リファラーを付与しないブラウザがあれば、そのブラウザからはコメントが書けなくなりますが今時のブラウザでそういうのはないと思います。
スポンサーリンク