Google Crisis Response(Google)
災害に関する情報源や、行方不明者情報の収集と検索を行う『パーソンファインダー』を初めとするツールの提供が行われています。

2006年12月28日 木曜日

コメントスパム対策

Filed under: WordPress
時間:22時27分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

 ブログサイトをふらふらしていたら、気になる記事を見つけました。

 ここ数日、ボット達の活動が賑やかですね。どこかのお国のスパマーが世界中に伝染させたゾンビを目覚めさせたのでしょうか?SpamKarma殿が頑張ってくれているのでほとんどは防いでくれているので表面上は問題ないのですが、アクセスログを見ると、wp-comments-post.phpを直接叩かれまくっていることに気が付きました。

 さっそくサーバー会社のサービスでアクセスを確認してみると、アクセスランキング1位が wp-comments-post.php !

 上記の記事では Apache の Rewrite を使った対策を紹介しています。コメントの投稿は記事ページから POST で送信されるのが本来の形ですが、スパムの場合は記事ページを飛ばして直接アクセスしているようです。この違いを利用した次のコードが掲載されています。

  1. RewriteEngine On
  2. RewriteCond %{REQUEST_METHOD} POST
  3. RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
  4. RewriteCond %{HTTP_REFERER} !.*ブログのドメイン.*
  5. RewriteRule (.*) http://%{REMOTE_ADDR}/

 参考にしたという Codex のコードは、恐らくこれだと思います。

  1. RewriteEngine On
  2. RewriteCond %{REQUEST_METHOD} POST
  3. RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
  4. RewriteCond %{HTTP_REFERER} !.*yourdomain.com.* [OR]
  5. RewriteCond %{HTTP_USER_AGENT} ^$
  6. RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]

 どちらも、直接アクセスしてきていたら送り返すという点は一緒です。
 Codex のほうは、リファラが正しくてもユーザーエージェント情報が得られない場合はスパム扱いにするという点(4~5行目)と、送り返すときのステータスがデフォルトの302(一時的なアドレスの変更)ではなく301(恒久的なアドレスの変更)になるようにしている点(6行目)が違います。後者の記述は、次回のスパムアクセスの時に実際のサイトを見に来なくなるという効果があります。

 さて、セキュリティソフトの中にはリファラをカットしてしまうものがあります。また、同じ機能を実装しているブラウザもあります。カットされた場合は4行目のところでスパムと判定されてしまうため、そのパソコンからはコメントの書き込みができません。これでは困りますので、リファラが空の場合はスパム扱いしない処理が必要になってきます。次のコードを4行目に入れればいいかと思います。

  1. RewriteCond %{HTTP_REFERER} !^$

 ただ、スパムコメントを行うプログラム(通称ロボット)がリファラをちゃんと返すのかという問題があります。恐らく返さないでしょう。すばやい動きをするために、なくても困らない処理は初めから入れていないはずです。少なくとも、私だったら入れません。

 試してみましたという内容にするつもりだったのですが、袋小路に自分から飛び込んでしまったようです。効果を期待しないで試してみます・・・。
 試すコードは、次のようにしました。

  1. RewriteEngine On
  2. RewriteBase /
  3. RewriteCond %{REQUEST_METHOD} POST
  4. RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
  5. RewriteCond %{HTTP_REFERER} !^$
  6. RewriteCond %{HTTP_REFERER} !.*yoshitomo.org.*
  7. RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]
Comments (1)

機能を実現しているプラグインを知らせたい

Filed under: WordPress,プラグイン
時間:19時09分
投稿者:よしとも
AddClips 経由でソーシャルブックマークに登録

 WordPress はプラグインを使うことでさまざまな機能の拡張が可能になっています。有名なプラグインは配布元にたどり着きやすいですが、マイナーなものだったりすると結構大変です。ここしばらくいろいろ探し回っていて、そのことを実感しました。

 使用中のプラグインのリストを作っているサイトは多いです。また、最近はスクリーンショットに書き込みをすることで、視覚的なプラグインの紹介という試みも行われています。どちらも有意義ですが、それぞれ問題点があります。

プラグイン紹介の問題点

リスト形式の場合

 リスト形式の場合は、そのプラグインがどこに使われているかわかりにくいという問題があります。リストの項目が増えるほど顕著になり、数十種類使用していたりすると何がなんだかです。もちろん、きちんと分類するとかすれば大分わかりやすくはなりますが。

視覚的な場合

 スクリーンショットによる視覚的な形式の場合は、プラグインの名前がわかっても、直接配布元に行くことができません。名前を検索して、その中から目的のサイトを探り当てる必要があります。クリッカブルマップにすればリンクさせることも可能ですが、メンテナンスが楽ではありません。ツールなしではやりたくない作業です。

どうすればいいのか

 思いついたのが、プラグインによって表示されている近くに配布元へのテキストリンクを入れてしまうという方法です。この方法であれば、視覚的でもあるし、テキストリンクなのでメンテナンスも簡単です。私は、直接テーマファイルに書き込んでしまいました。「by プラグイン名」という形でリンクを入れてあります。
 現時点では、右サイドバーのアーカイブ、各記事の下の評価、複数ページにわたるアーカイブの一番下にあるページナビゲーションの3箇所がプラグインに拠るもので、全て上記の方法で配布元へのリンクを張っています。

 この方法、いかがでしょうか。

Comments (0)

HTML convert time: 0.127 sec. Powered by

Images is enhanced with WordPress Lightbox JS by Zeo