Geeklog Spam-Xプラグインは、Geeklogシステムに対するコメントスパム対策として開発されました。コメントスパムをよく知らない方はコメントスパムマニフェストをご覧ください。
Geeklogでのスパム対策はもっぱらTom Willetが開発したSpam-Xプラグインに頼っています。このプラグインはモジュール構造を採用しており、スパム送信者の最新の手法に対応する必要が生じた場合は、新しいモジュールで機能を拡張できるようになっています。
GeeklogとSpam-Xプラグインは次のものを対象とします。
Spam-Xプラグインは、コメントスパム送信者の変化に対して容易に対応できるよう、拡張性を重視して開発されました。検出(Examine)、アクション(Action)、管理(Admin)モジュールの3種類があります。新規モジュールは1個のファイルに収められているので、該当ディレクトリに追加しさえすれば、プラグインの機能を追加できます。
Geeklogには次の検出モジュールが同梱されています。
パーソナルブラックリストモジュールを使用すると、スパム投稿によく見られるキーワードとURLをブラックリストに追加できます。スパムが投稿されている場合、そのURLをパーソナルブラックリストに追加すれば、送信者が再びスパムを投稿しても締め出すことができます。
上記を行うことにより、既に受信したスパムを削除しやすくなります。データベースから多数のスパム投稿を削除するのに、一括コメント削除と一括トラックバック削除を使用できるようになるからです。
パーソナルブラックリストには、Geeklogのバッドワードリスト(censor list)を読み込み、バッドワードを含むコメントをすべて禁止する機能があります。このようなリストは子ども向けのサイトには有用でしょう。ふさわしくない言葉を含むコメントは投稿できなくなるからです。
1つないし少数のIPアドレスから送信されるスパムに出くわすこともあります。IPフィルターモジュールを追加することで、これらのIPアドレスから送信されるスパムを自動的にブロックできます。
単一のIPアドレスだけでなく、CIDR表記や開始アドレス-終了アドレス という形式で、IPアドレスの範囲を指定することもできます。
IPアドレスが実際にはあまりよい判断基準にはならないということに注意してください。インターネットサービスプロバイダやホスティングサービスの中にはスパムの温床として知られているものもありますが、それらのIPアドレスをブロックしてもあまり役には立たないでしょう。スパム送信者はインターネットへ接続し直すときに新しいIPアドレスを取得するのに対し、ブロックされたIPアドレスは他の罪もないユーザーが使用することがよくあるからです。
Geeklog 2.2.1でIPv6のアドレスをサポートしました。
このモジュールが役に立つのは少数の特別な場合だけです。ここでは、スパム送信元のドメインを収容しているWebサーバのIPアドレスを入力します。スパム送信者の中には多数のサイトを少数のWebサーバ上で運営しているものがいます。このような場合は、多数のドメイン名ではなくWebサーバのIPアドレスをブラックリストに追加すればよいでしょう。Spam-Xプラグインは、投稿されたデータ中のすべてのURLをチェックし、該当するIPアドレスがないかチェックします。
このモジュールを使用すると、ある種のHTTPヘッダーを検出することができます。サイトへ送信されるすべてのHTTPリクエストには、訪問者が使用しているWebブラウザーや使用言語などの情報を識別するヘッダーが付随しています。
HTTPヘッダーフィルターモジュールを使用すると、ある種のHTTPリクエストをブロックすることができます。たとえば、スパム送信者の中には、スパムを送信するのにPerlスクリプトを使用しているものがいます。Perlスクリプトが送信するユーザーエージェント(ブラウザー識別情報)は "libwww-perl/5.805" (バージョン番号はこれとは違う場合もある)のようなものが多いです。したがって、このユーザーエージェントが送信するスパムをブロックするには、次のように入力します。
Header: | User-Agent |
Content: | ^libwww-perl |
これで "libwww-perl" で始まるユーザーエージェントからのスパム投稿はすべてブロックされます。
Stop Forum Spamは集約されたサーバーを基にするサービスで、 掲示板やブログの既知のスパム送信者のIPアドレス、ユーザー名、メールアドレスのリストを提供します。 このモジュールを有効にすると、新規ユーザーの登録の際に、ユーザーのIPアドレスとメールアドレスを SFSのデータベースでチェックします。該当データが見つかった場合、 Geeklog上のユーザーアカウントは作成されません。
SFSはフリーのサービスで、www.stopforumspam.comで運営されています。
このモジュールを有効にすると、投稿とユーザーのプロフィールに含まれるリンクの数を制限することができます。 このモジュールを有効にしてリンクの数を設定するには、 コンフィギュレーションからSpam-Xの設定を変更する必要があります。有効にする場合は、リンク数を少なくとも1個に設定した方がよいでしょう。 ホームページのフィールドは既定でプロフィールのページに作成されるからです。
With this module enabled, you can use Akismet service provided at https://akismet.com/ to check submitted content to determine if it is spam or not. To enable this module, you have to sign up at this page, get your API key, and set it at the Configuration > Spam-X > Modules > Akismet > API Key. This module takes the author name, ip and text of the submitted content and sends it to the Akismet service which then returns a response indicating if it thinks it is spam or not.
いったん検出モジュールがスパム投稿を検出すると、アクションモジュールがスパムをどう処理するかを判断します。たいていの場合、スパムを削除するだけでよいですが、これを行うのが削除アクション(Delete Action) モジュールです。
その名前が示すとおり、管理者メールアクション(Mail Admin Action) モジュールはスパムを検出したときに、サイト管理者にメールで通知します。多数の通知メールが送られる可能性があるため、デフォルトでは無効になっています。
アクションモジュールは使用する前に個別に有効にする必要があります(一方、検出モジュールはSpam-Xのディレクトリにファイルを入れるだけで有効になります。)。このため、すべてのアクションモジュールは独自の番号を持っています。有効にしたいすべてのモジュールの番号を足し合わせた数値を、「管理者用メニュー - コンフィギュレーション - Geeklog - ユーザーと投稿」の「Spam-X」に入力します。
削除アクションモジュールの数字は 128、管理者メールアクションモジュールは 8 です。両方のモジュールを有効にするには、128 + 8 = 136 を入力します。
SLV検出モジュールは、他の検出モジュールが捕捉したスパム投稿を確実にSLVに通知します。SLVアクション(SLV Action) モジュールによって補完されています。このモジュールは削除アクションモジュールと連動しているので、削除アクションモジュールを有効にすると、SLVアクションモジュールも有効になります。
パーソナルブラックリスト、IPフィルター、URLのIPフィルター、HTTPヘッダーフィルターモジュール用の管理モジュールは新しい項目を追加するためのフォームを提供します。既存の項目を削除するには、単にその項目をクリックするだけです。
SLVホワイトリスト管理モジュールを使えば、SLVに通報したくないURLを追加できます。サイトに投稿されるデータにたまたまある特定のURLが頻繁に含まれているが、SLVにスパムと判定されてほしくないときに役に立ちます。
自分のサイトのURL(つまり、「管理者用メニュー
- コンフィギュレーション - Geeklog - サイト」の「サイトURL」)は自動的にホワイトリストに登録されるので、このモジュールで新たに登録する必要はありません。
ログ閲覧モジュールを使用すれば、Spam-Xログファイルの閲覧・クリアができます。ログファイルには、スパム送信元のIPアドレスやユーザーID(登録ユーザーがスパムを投稿した場合)、検出モジュール名などの追加情報が含まれています。
多数のスパムが投稿されても検出されなかった場合は、一括コメント削除モジュールと一括トラックバック削除モジュールがスパムの削除に役立つでしょう。これらのモジュールを使用する前に、スパムに含まれるURLやキーワードをパーソナルブラックリストに忘れずに追加してください。
MTブラックリストは、スパム送信に利用されたURLのブラックリストで、Movable Type用にJay Allenによって開発・維持されていました。そのため、MT-Blacklistという名前がついています。
ブラックリストの維持を行うのは大変手間のかかることであり、スパム送信者を絶えず把握しておかなければなりません。そのため、Jay Allenは現在ではスパムを検出するより優れた方法があると想定して、最終的にMTブラックリストの更新をやめてしまいました。
Geeklog 1.4.1以降、GeeklogではもはやMTブラックリストを使用していません。1.4.1にアップグレードするときに、データベースからMTブラックリストのデータは削除され、MTブラックリスト用の検出・アクションモジュールはもはや同梱されていません。
トラックバックもまた、Geeklogが受け入れる前にSpam-Xプラグインで検査されます。トラックバックの場合、追加できるチェックがあります。トラックバックを送信してきたサイトが自分のサイトへのバックリンクを含んでいるかどうかをチェックするよう、設定できます。さらに、トラックバックURLに含まれるサイトのIPアドレスがトラックバック送信元のIPアドレスと一致するかをチェックすることもできます。これらの検査に合格しないトラックバックはふつう、スパムです。詳細は、設定用のドキュメントを参照してください。
Spam-Xプラグインの設定は、「管理者用メニュー - コンフィギュレーション - Spam-X」から行えます。
項目(変数) | デフォルト | 説明 |
---|---|---|
ログを有効にする(logging) | はい(true) |
はい(true)にすると、スパムと認識された投稿がログファイル(spamx.log)に記録されます。 |
タイムアウト(timeout) | 5(秒) | SLVなどの外部サービスと通信する際のタイムアウトとなる秒数を指定します。 |
メールで通知する(notification_email) | 「管理者用メニュー - コンフィギュレーション - Geeklog - サイト」の「サイトのメールアドレス」の設定値 |
管理者メールアクションモジュールが有効になっている場合、スパム通知の送信先メールアドレスを指定します。指定しない場合は、サイトのメールアドレス($_CONF['site_mail'])に送信されます。 |
Spam-Xの動作(action) | 128 | 「管理者用メニュー - コンフィギュレーション - Geeklog - ユーザーと投稿」の「Spam-X」が設定されていない場合に備えるための設定です。言い換えれば、「管理者用メニュー - コンフィギュレーション - Geeklog - ユーザーと投稿」の「Spam-X」の設定の方が優先します。 |
スパム記録の保存日数(max_age) | 0 | Spam-Xの記録をデータベースに保存する最大の日数を指定します(0 = 無制限に保存)。SLVホワイトリストの記録は削除しません。 |
削除する記録の種類(records_delete) | 'email', 'IP' |
スパム記録の保存日数に達した時に削除する記録の種類を指定します。デフォルトでは次のものがあります:
|
項目(変数) | デフォルト | 説明 |
---|---|---|
Stop Forum Spamモジュールを有効(sfs_enabled) | いいえ(false) |
Stop Forum Spam (SFS)モジュールを有効にするかどうかを指定します。有効にすると、ユーザー新規登録時にユーザーのメールアドレスとIPアドレスをStopForumSpam.comに照会してスパム判定を行います。 For more information see the SFS introduction. |
信頼スコアの閾値(sfs_confidence) | 25 |
Stop Forum Spamの信頼スコアの閾値(パーセント)で、この値を超えると、検証しているフィールドが望ましくない活動を行うことになることを示すかなり良い目安になります。1から100の範囲で入力します。 |
Spam Number of Linksモジュールを有効(snl_enabled) | いいえ(false) |
Spam Number of Links (SNL)モジュールを有効にするかどうかを指定します。有効にすると、ユーザーが投稿したり、プロフィールを作成・更新したりする際に、含まれるリンクの数を指定された数に制限するようになります。 For more information see the SNL introduction. |
リンク数(snl_num_links) | 5 | 投稿やプロフィールでリンクと見なさないリンクの最大数。 |
Akismetモジュールを有効にする | いいえ |
Whether the Akismet module is enabled or not. If enabled it will check with the Akismet service to determine if the submitted content is spam (using the ip, author name, and text of the content). For more information see the Akismet introduction. |
APIキー | (なし) | このページで取得したAkismetのAPIキーを指定します。 |
Spam-Xプラグインの詳細情報とサポート掲示板は、Spam-XプラグインのホームページとGeeklog Wikiにあります。