どうもこのところ、このブログにやってくる英文スパム(コメントやトラック・バック)が増えたように思えます。
ここ「Telmina」では、WordPress向けのスパム対策プラグインをいくつか導入しておりますが、その中でも特に、日本語に特有の文字、つまりひらがなやカタカナが含まれないコメントやトラック・バックを寄せ付けない「SOMY SpamBlock JP」というプラグインは重宝しておりました。
- プラグイン配布元
- SOMY SpamBlock JP @ WordPress:SOMY.JP
ところが、このところ、どうも日本語が一切含まれていないコメントやトラック・バックがスパム対策の網の目をかいくぐって(大袈裟)立て続けにこのブログにもやってきております。
いくら「SOMY SpamBlock JP」側で承認待ち状態にするとは言っても[註1]、やっぱりそういうものの存在を認識してしまうと気分いいものではありませんね。
英文スパムで悩んでいる旨をTwitterでつぶやいたところ、おで氏よりWordPress向けスパム対策プラグインを2つ紹介していただきました。
- 関連記事
- [wordpress] Akismetを暇にする現状で最強のスパム対策 @ Odysseygate.com
- プラグイン配布元
- WP-SpamFree: A Powerful Anti-Spam Plugin for WordPress! @ WebGeek
- Simple Trackback Validation Plugin @ Software Guide
何となく、後者のほうは、現在愛用している「Spam Karma 2.3」と機能が被っているような気がして、以前導入を検討したものの見送った覚えがあるのですが、せっかくご紹介いただいたのだからと言うことで、両方導入してしまいました。
効果のほどは後日報告するかもしれませんが、後者の設定については、ここ「Telmina」では、初期設定ともおで氏の設定とも若干異なる設定にいたしました。
- How to deal with spam trackbacks?
- Place into comment moderation queue
- Additional options:
- 「Add prefix [BLOCKED BY STBV] ~」のチェックをOFF
- Validation Phase 1: IP Address
- 「Validate IP Address」のチェックをON
- Validation Phase 2: URL
- 「Validate URL」のチェックをON
- Strictness:
- Any link beginning with the following URLs is allowed:
- (ここでURLを羅列)
- Additional options:
- 「Moderate in case of errors」のチェックをON
- Other Options
- Enable Log (latest 50 trackbacks will appear below)
ご教示いただきましたおで氏に対し、厚く御礼申し上げます。
これで少しは精神的に楽になれれば…。
- いきなり削除するという設定にも出来るけどもし万が一無実だった場合に取り返しがつかなくなる… [back]











4個のコメント
ウチもコメントスパム (フォームから記入するやつ) が大量に来ましたが、wp-comments-post.php の改造で凌ぎました。トラックバックの方は、短い内容のトラックバックを弾くがかなり有効です (32文字では少ないので、64文字ぐらいの方がよさげ)。
「トラックバックURLをランダムにする」というのは、以前の Yuriko.Net で行なっていた対策ですが、いかんせん自作ウェブログシステムなので、「マイナーシステムだから狙われてない」のか「ランダムURLが有効であった」のか判断がつきません……。トラックバック URL をランダムにするのは、今後研究してみますが、wp-trackback.php にはフックがまるでないので、ちょっと困難そうです。
う~ん。WPコアの改造はちょっと怖いですし、ヴァージョン・アップのたびに同じ作業をするのがかったるいです。
とはいえ、それが直接攻撃に対するおそらくもっとも効果的であろう対策だと言うこともまたうなずけます。
次善策として、以前ここでも導入していた足し算プラグイン「Math Comment Spam Protection Plugin」があるのですが、エラーが発生したときの動作の関係で、特に携帯電話経由のアクセスでちょっと困ったことになってしまい、最終的に使用を中止せざるを得なくなりました。
似たようなコンセプトのプラグイン、自作する必要がありますかねぇ。てゆうか作る時間ください(ぉぃ)。
これだと、日本語の入った文字もはじいてしまいますよね。
あまりないケースですが、真っ当な記事で、写真が主で記事本文が無茶苦茶短いというケースもなくはありませんので、効果覿面とわかっていても即導入というわけにはゆきません。
改造して英数字のみで64文字以下の場合は即却下とか出来るようにしてみようかな(ぉぃ)。
だいぶ前に一時期使っていたことのある「WP-Hardened-Trackback update 」はURLを変更しているにはしているのですが、JavaScriptの使用が前提になっているという点がマイナスですね。
もしかしたらご参考になるかもしれませんが…。
ここ最近は、wp-comments-post.php は変更されてないようなので、改造版がそのまま使えています。ウチは「メールアドレス or ウェブサイト URL のどちらか入力されれば OK」というルールにしているので、それを実現するには wp-comments-post.php をいじるのが必須になっています。プラグインで変更できたらいいのですが、そうなってないのは困ります。
日本語の場合 UTF-8 だと 32バイト == 10文字ですから、まあ大丈夫でしょう。64バイトにしてしまうと、21 文字でも落としてしまうので心配かもしれません。
WP-Hardened-Trackback は以前実装を確認したのですが、あまり参考になりませんでした。今回改めて見てみましたが、wp-content/plugins/tbkeys/ に認証キーを入れるという凶悪実装のままで、これは使いものになりません (セキュリティー的にもやばそう)。
とはいえ、突然修正されたりしたらやっぱり困りますね(笑)。
こっちについては、「次善策」のほうを模索した方がいいような気がしてきました。
おろ? strlen()って文字数ではなくバイト数を数えるのでしたっけ?
…と思ったら、マルチバイト対応のmb_strlen()がちゃんとあったのでした(間抜け!)。
じゃあ俺はmb_strlen()を使うと言うことで(ぉぃ)。
でもいつ導入すべきか。とりあえず今晩はもう寝ます。
トラック・バックについては、既存のプラグインで最大限の努力をする以外になさそうですね。
あとは手動でIPアドレスによるアクセス制限をかけるとか…う~んエレガントじゃない!
1個のトラックバック/ピンバック
[...] Re: [wordpress] Akismetを暇にする現状で最強のスパム対策(From Odysseygate.com) [...]
コメントを書く