スパムコメントは99%以上が Akismet によってブロックされているのですが、鬱陶しいので Apache の機能で特定 IP アドレスからのアクセスをブロックしています。
最近またスパムコメントが増えてきましたので改めて設定。どうやっているかをついでにメモ。
まずはスパム業者の IP アドレスの抽出です。このブログを設置しているサーバではデータベースに phpMyAdmin でアクセスできるので、次の SQL を直接発行しました。
- SELECT `comment_author_IP`, count(`comment_author_IP`) AS cnt
- FROM `wp_comments`
- WHERE `comment_approved` = 'spam'
- AND TO_DAYS( NOW() ) - TO_DAYS(`comment_date`) < = 30
- GROUP BY `comment_author_IP`
- ORDER BY cnt DESC;
これで、最近の30日で回数の多い順に IP アドレスが抽出されます。この IP アドレスを Limit ディレクティブでアクセス禁止にします。私は上位10個を指定しました。
- <Limit GET POST>
- order allow,deny
- deny from 012.345.678.9
- allow from all
- </Limit>
やっていることは、WorstOffenders(旧名称 Akismet htaccess extension) というプラグインと同じだと思います。面倒なら、このプラグインを入れてしまうほうがいいかもしれません。