« 携帯の不具合・再起動あります | メイン | 朗報?Microsoftとの提携Ubuntu断る »

WordPressもUserAgentでスパムを拒否してみる

MovableTypeのトラックバックスパム対策としてはUserAgentベースの方法が効果的だったので同じようにWordPressでもスパムフィルタをしてみることにします。また同じ時に検討してみたIPアドレスベースの拒否方法は共有サーバからのアクセスも拒否してしまうのが問題なので使うのがためらわれます。

WordPressにはAkismetという優秀なスパムフィルタが標準で実装されており、ほとんどのスパムを検出してくれますが、やはりSPAMなぞは届く前に拒否してしまいたいものです。また確かにAkismetは有効なのですが、正常なトラックバックやコメントもスパムと判定してしまうことがあるようですので、一括削除前に一度チェックした方が良さそうです。 そのためにも元から入ってくるスパムは少ない方がありがたい。

本家のプラグインディレクトリには多くのスパム対策プラグインが紹介されています。

しかし今のところWordPressのログを見る限りMovableTypeと同じようなスパムソフトがばら撒いているようなので、プラグインを入れなくてもスパマーのUserAgentを.htaccessで拒否すれば多くのスパムをカットできそうです。

このやり方の利点は、意外に効果が大きいこと、サーバへの負荷が少ないこと、ブログソフトまで届かないのですっきりというところです。 欠点はコメントスパムには余り効果がないこと。

WordPressのトップディレクトリにある.htaccess 

SetEnvIf User-Agent "^$" trackbackSpammer
SetEnvIf User-Agent "^.$" trackbackSpammer
SetEnvIf User-Agent "^libghttp/1.0" trackbackSpammer
SetEnvIf User-Agent "^TrackBack/1.02" trackbackSpammer
SetEnvIf User-Agent "^TrackBack/1.6" trackbackSpammer
SetEnvIf User-Agent "^NP_Trackback/2.0.3$" trackbackSpammer
SetEnvIf User-Agent "^User-Agent" trackbackSpammer
SetEnvIf User-Agent "^USERAGENT" trackbackSpammer
SetEnvIf User-Agent "^tb_send/1.0" trackbackSpammer
#SetEnvIf User-Agent "^Nutscrape/1.0" trackbackSpammer
SetEnvIf User-Agent "^MovableType/3.14" trackbackSpammer
SetEnvIf User-Agent "^Opera/" trackbackSpammer2
SetEnvIf User-Agent "^Mozilla/" trackbackSpammer2

<Limit POST>
Order Allow,Deny
allow from all
deny from env=trackbackSpammer
</Limit>

# BEGIN WordPress
...

#2007/6/20  tb_sendとNutscrape追加。ただしNutscrapeはsquidらしいので微妙。
#2007/8/4 NP_Trackbackの文字列を限定的に修正
#2007/11/7 MovableType/3.14を騙るものも追加

拒否するUserAgentはMovableTypeの時と同じですが、POSTを全部引っ掛けているのでMozillaとOperaなどのブラウザ騙り系を拒否すると、まともなコメントも引っかかってしまってまずいので、拒否しないようにしておきます。 また怪しいUAからのPOSTを全面禁止することになりますが、まあ良いかなあ、という感じです。

WordPressはシステム側では.htaccessの'# BEGIN WordPress'~'# END WordPress'の間だけを更新する仕様で、それ以外の部分は手修正しても問題がなく調整が楽です。

当面UserAgentのフィルタとAkismetでほとんどのものが拒否できそうです。IPアドレスベースの拒否は前述の理由でしばらくは行わないことにします。

まだ運用を始めたばかりの別ブログに適用したので、これからここをつついてみる予定。
#はてなのブックマークにコメントを頂いているのですが(こういうコメントのやり方もあるんですね...)
一日100-200程度の少ないアクセスのブログで試している途中経過を報告します。

2007/6/20
.htaccess設置3日目。私のところに来るスパムのはほとんどはTrackback/1.6で、Akismetまで届くスパムがなくなってしまいました。マイナーなブログなせいもあるのでしょうけど。。。
特別なプラグインを入れなくてもそれなりに効果はあるといってよいようです。

トラックバック

このエントリーのトラックバックURL:
http://blog.browncat.org/cgi-bin/mt/mt-tb-abc.cgi/346


この一覧は、次のエントリーを参照しています: WordPressもUserAgentでスパムを拒否してみる:

» スパム対策 送信元 はねつき
 前に言ってたスパム対策をしてみました。  今まで、スパム対策はWordPressに元から入っている超高性能対スパム用プラグイン「Akismet」がだけ入... [詳しくはこちら]

» 『.htaccess』のアクセス制限を24時間はずしてみる。 送信元 HAAYA
私が小学校低学年の頃『キョンシー』が大変流行しました。キョンシーは自分の血やお札を貼ることによって動きを止めることができるので... [詳しくはこちら]

» WordPressでの、プラグイン以外のスパム対策 送信元 GoForIt!
スパム対策についてちょこちょこと調べてみると、少し面白い情報が。 どうやら、プラグイン以外でも対応できるようです。   それはWordPress... [詳しくはこちら]

コメントを投稿

(お書きになったコメントはすぐには表示されません。ご了承ください。)


About

2007年06月17日 21:18に投稿されたエントリーのページです。

ひとつ前の投稿は「携帯の不具合・再起動あります」です。

次の投稿は「朗報?Microsoftとの提携Ubuntu断る」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

           

カテゴリー

Powered by
Movable Type 3.36

Twitter


最近のエントリー

デル株式会社ads

注目エントリー