DealingWithSpam14
提供: GeeklogJpWiki
Geeklogサイトでユーザーに記事やコメント,掲示板への投稿などを許可すると,早晩スパムに対処しなければならなくなります。残念ながらこれが今日のWebの現状で,この状況はすぐには変わりそうにありません。
Geeklogでのスパム防御はもっぱら,Tom Willetが開発したSpam-Xプラグインを元にして行われています。モジュール構造になっていて,スパマーの最新の技術に対抗できるよう,必要になった時には新しいモジュールで拡張できます。
GeeklogとSpam-Xは次のものを対象にスパムをチェックします。
- 記事の投稿
- コメント
- トラックバックとピンバック
- イベントの投稿
- リンクの投稿
- 「記事をメールで友人に知らせる」オプションとともに送られる文章
- ユーザープロファイル
他のプラグインもSpam-Xプラグインを利用してコンテンツ中のスパムを選別できます。たとえば,掲示板プラグインはそのような処理を行っています。
「モジュール」
Geeklogには次のSpam-Xモジュールが同梱されています。
1.MT-Blacklist
MT-Blacklistはブラックリスト,つまり,スパムの投稿に使用されたURLのリストで,元はJay AllenがMovable Type用に開発し,メンテナンスしています(だから,MT=Movable Typeという名前になっています)。
ブラックリストのメンテナンスは大変な作業で,絶えずスパマーに対応しなければなりません。そのため,現在では新しいよりすぐれたスパム検出技術が利用できるという前提で,Jay Allenは結局,MT-Blacklistの維持を打ち切りました。
Geeklogは現時点では,依然としてSpam-X用のMT-Blacklistモジュールが同梱されています。Geeklog.netに保管されているコピーからJayのMT-Blacklistの最新版を取り出して使用しています。しかしながら,このリストは今では時代遅れであり,2,3の汎用のルールを別にすれば,大して防御してくれません。これからリリースされるGeeklogのバージョンからはいずれMT-Blacklistは削除されるでしょう。
2.Personal Blacklist
Personal Blacklistモジュールを使うと,スパム投稿によく見られるキーワードやURLを追加できます。スパムが来ている時には,そのURLをPersonal Blacklistに追加して,スパマーが再び投稿しようとしても自動的に選別されるようにしてください。
これは突破してきたスパムを削除する時にも役に立ちます。データベースから大量のスパムを削除する時にMass Delete CommentsモジュールとMass Delete Trackbacksモジュールを使えますから。
3.IP Filter
時には,たった1つないしほんの2, 3のIPアドレスからしか来ないスパムもあります。これらのIPアドレスをIP Filterモジュールに追加すれば,該当アドレスからの投稿は全て自動的にブロックされます。
IPアドレスはあまりよい判断基準にはならないことに注意してください。インターネットサービスプロバイダーやホスティングサービスの中にはスパマーの温床として知られているものもありますが,これらのIPアドレスの1つをブロックしてもあまり役には立ちません。スパマーが次回インターネットに接続するときにはIPアドレスを変える一方で,遮断されたIPアドレスは罪のない他のユーザーが使うことが多いからです。
4.IP of URL Filter
このモジュールが役に立つのは2,3の特殊な場合に限ります。ここにはスパムを送ってくるドメインを収容するのに使われているWebサーバーのIPアドレスを入力します。スパマーの中にはほんの2,3のWebサーバー上に多数のサイトを持っているものがいます。この場合は,多数のドメインをブラックリストに追加する代わりにWebサーバーのIPアドレスを追加するだけでよいのです。Spam-Xモジュールは投稿中のURLを全部チェックして,ブラックリストに載っているWebサーバーから発信されているかチェックします。
「実験的なモジュール」
上述のように,新しいモジュールを /path/to/geeklog/plugins/spamx/ ディレクトリに追加するだけでSpam-Xは簡単に拡張できます。次のモジュールが現在,開発中です。
1.Filters
次のモジュールは投稿がスパムかどうか判定するのに外部のサービスを利用します。
2.Actions
Spam-Xプラグインでは,スパムを検出した時にどのようなアクションを起こすのかを定義することができます。 デフォルトのアクションでは,投稿を削除し,オプションでサイト管理者にメールを送信します。
次のモジュールもスパム投稿から得た情報を他のプラグインに伝えて,同じ発信源からスパムが投稿されるのを自動的に防ぎます。
「他のプラグイン」
1.Bad Behavior Bad Behaviorは既知のスパムボットのシグネチャと不正なHTTPリクエストをチェックするスクリプトセットで,ボットがスパムを投稿するチャンスを得る前にブロックすることを目標にしています。
Bad BehaviorはMichael HamptonによってWordPress用のプラグインとして書かれましたが,Geeklogに移植されています。
2.Banプラグイン
Banプラグインは1つのことをするよう設計されている。自分のWebサイトから人を締め出す簡単な方法を提供することだ。
(Tom WilletのWebサイトから引用)
「他の方法」
HTTPリクエストからスパマーを識別できる場合,つまり,IPアドレスやHTTPリクエスト中のある種の特徴(普通ではないユーザーエージェントなど)によって識別できる場合,スパムをブロックする最も効果的な方法は直接Webサーバー上で行う方法です。
Apacheサーバーでは,ここで説明されているように,普通は .htaccess ファイルで行います。この方法はスクリプトキディやワームに対しても有効です。
「情報源」
geeklog-spamメーリングリストは,スパム情報の報告と同様,Geeklog用の新たなスパム対抗策を議論するのに最適な場所です。
Ann Elisabeth Nordbo (別名,Spam Huntress)が自分のサイトのスパムに関する数多くの有用な情報を提供し,自分のwikiで既知のスパマーに関する情報を収集しています。
<?php /** * File: config.php * This is the config file for the Geeklog Spam-X plugin * * Copyright (C) 2004-2006 by the following authors: * Author Tom Willett tomw AT pigstye DOT net * * Licensed under GNU General Public License * * $Id: config.php,v 1.18 2006/09/03 15:33:47 dhaun Exp $ */ $_SPX_CONF['version'] = '1.1.0'; // Default Spam-X Action $_SPX_CONF['action'] = 128; // Default is to ignore (delete) the post // address which mail admin module will use $_SPX_CONF['notification_email'] = $_CONF['site_mail']; // if set to = true, skip spam check for members of the "spamx Admin" group $_SPX_CONF['admin_override'] = false; // enable / disable logging to spamx.log $_SPX_CONF['logging'] = true; // timeout for contacting external services, e.g. SLV $_SPX_CONF['timeout'] = 5; // in seconds // DO NOT CHANGE THE STUFF BELOW UNLESS YOU KNOW WHAT YOU ARE DOING // This sets Spam-X Plugin Table Prefix the same as Geeklog $_SPX_table_prefix = $_DB_table_prefix; // Add Spam-X Plugin table to $_TABLES array $_TABLES['spamx'] = $_SPX_table_prefix . 'spamx'; ?>