Extension:SpamBlacklist/ja

From MediaWiki.org

Jump to: navigation, search
MediaWiki Extensions
List of MediaWiki Extensions
Crystal Clear action run.png
SpamBlacklist

Release status: experimental

SpamBlacklist.gif
Implementation Page action
Description 正規表現ベースのスパムフィルタ。
Author(s) Tim Starling
MediaWiki 1.6.0+
Download Wikimedia SVN
readme

SpamBlacklist拡張機能はして入れたファイルもしくはwikiページで定義された正規表現にマッチするRLホストを含む編集を防止できます。誰かがページを保存しようとすると、不正なホスト名の潜在的にとても巨大なリストに対してテキストをチェックします。マッチする物がある場合、ユーザに対してエラーメッセージを表示してページの保存を拒否します。

Contents

[edit] インストレーション

拡張機能はバージョン1.6.0以降のMediaWikiで動作します。

[edit] 基本的なインストレーション

  1. SpamBlacklistファイルextensionsディレクトリのSpamBlacklistサブディレクトリに保存します。 SpamBlacklistディレクトリには少なくとも以下の3つのファイルが存在することになります。
    • SpamBlacklist/SpamBlacklist.php
    • SpamBlacklist/SpamBlacklist_body.php
    • SpamBlacklist/SpamBlacklist.i18n.php
  1. 次の行をMediaWikiのrootディレクトリにあるLocalSettings.phpに追加します:
require_once( "$IP/extensions/SpamBlacklist/SpamBlacklist.php" );

バッドRLのリストは複数のソースから引き出すことができます。これらのソースは$wgSpamBlacklistFilesグローバル変数によって設定できます。このグローバル変数はSpamBlacklist.phpをインクルードした後のLocalSettings.phpで設定できます。

$wgSpamBlacklistFilesは配列で、それぞれの値はRLもしくはファイル名もしくはデータベースの位置を含みます。データベースの位置を指定することでwiki上のページからブラックリストを引き出すことができます。データベースの位置指定子のフォーマットは"DB: <db name> <title>"です。

追加ファイルがリストされていても、ローカルページであるMediaWiki:Spam-blacklistMediaWiki:Spam-whitelistは常に使用できます。

$wgSpamBlacklistFilesを定義してLocalSettings.phpで拡張機能を要求することで、フィルタが有効になります。

[edit] カスタムのブラックリストソース

MediaWikiと互換性のあるブラックリストファイルの最初のソースはWikimediaの Meta-Wiki上にあるスパムブラックリスト(http://meta.wikimedia.org/wiki/Spam_blacklist)です。デフォルト構成は10-15分ごとに一度このリストを読み込みます。しかしながら、Wikimediaのスパムブラックリストは認証された管理者のみが編集できます。リストが大規模に使用されるようになってから、何千もの外部リンクを持つwiki、Wikimediaブラックリストは、ブロックするリンクに関しては比較的慎重です。http://meta.wikimedia.org/wiki/Talk:Spam_blacklistでブラックリストの修正を提案できます。

複数のもしくは異なるソースからバッドホスト名のリストを引き出したい場合、拡張機能をインクルードした後で$wgSpamBlacklistFiles配列を追加します。先に$wgSpamBlacklistFilesを定義すると、デフォルトの振る舞い(Meta-Wikiブラックリスト)はもはや動作しないことに注意して下さい。$wgSpamBlacklistFilesは配列で、それぞれの値はRL、ファイル名、データベースの位置のどれかを含みます。データベースの位置を指定することでwiki上のページからブラックリストを引き出すことが可能になります。

データベース位置の指定子のフォーマットは"DB: [db name] [title]"です。[db name]はLocalSettings.phpにおける$wgDBnameの値に正確にマッチします。wikiのデフォルトの名前空間で要求されたページ名 [title]を作成します。これを行う場合、一般利用者の編集からページを保護することを強くお勧めします。誰かがすべての物にマッチする正規表現を追加する明らかな危険性に加えて、任意の正規表現を入力できる攻撃者はPCREライブラリセグフォルトを生成する可能性があります。

例:

require_once( "$IP/extensions/SpamBlacklist/SpamBlacklist.php" );
$wgSpamBlacklistFiles = array(
   "$IP/extensions/SpamBlacklist/wikimedia_blacklist", // Wikimediaのリスト
   //  データベース タイトル
   "DB: wikidb My_spam_blacklist",    
);

上記の例において、スパムブラックリストは2つのソースからコンストラクトされます: wikiインストレーションのSpamBlacklistディレクトリのwikimedia_blacklistファイルと、My_spam_blacklistという名前のwiki上のページの内容です。Wikimediaのブラックリストをローカルにホストしていない場合、次のように行を変更する必要があります:

"http://meta.wikimedia.org/w/index.php?title=Spam_blacklist&action=raw&sb_ver=1" // Wikimediaのリスト

[edit] ホワイトリスト

対応するホワイトリストはMediaWiki:Spam-whitelistメッセージを編集することで維持できます。使用している別のwikiのブラックリストからの選択エントリを上書きしたい場合、これは便利です。

[edit] ノート

  • 拡張機能とドキュメンテーションはTim Starlingによって書かれ、曖昧にライセンスを付与しています。
  • Extension:SpamBlacklist/update scriptは共有ブラックリストから自動的に更新できるクローンスクリプトです。memcachedを利用している場合、spam_blacklist_regexesキーも削除しなければなりません (例えば、maintenance/mcc.phpを使用する場合)。

[edit] 使い方

[edit] 構文

一つの行で'#'文字の後の文字はすべて無視されます(コメント用)。すべての別の文字列はURL内でのみマッチする正規表現のフラグメントです。

注:

  • "http://"もしくは"www."を追加しません; 正規表現はURL内部でどのサブドメインにマッチするので必要ありません。
  • URLの前で終わらないパターンは使わないで下さい(例えば、'.*'を含むもの)。
  • '^'と'$'アンカーはURLの始めと終わりではなくページの始めと終わりでにマッチします。

[edit] パフォーマンス

拡張機能は!http://[a-z0-9\-.]*(line 1|line 2|line 3|....)!Siのような単独の正規表現の文を作成します。すべてのページビュー上のすべてのコードをロードすることを回避するために、この正規表現は"loader"ファイルに保存されます。MediaWikiインストレーションに対してキャッシュを利用することは強くお勧めしますが、MMCacheといったバイトコードキャッシュを使用していなくてもページビューパフォーマンスは影響を受けません。

正規表現のマッチ自身一般的にわずかなオーバーヘッドをページの保存に追加します(我々の経験によればおよそ100ms)。しかしながらディスクもしくはデータベースからスパムフィルタを読み込むこと、と正規表現を構築することはハードウェアによって膨大な時間がかかることがあります。この拡張機能を有効にすることで保存が過度に遅くなった場合、サポートされるバイトコードキャッシュをインストールしてみて下さい。SpamBlacklist拡張機能はそのようなシステムが存在する場合、構築された正規表現をキャッシュします。

[edit] 安定性

この拡張機能はウィキメディア財団外部で広くテストが行われていません。2004年12月以降Wikimediaのウェブサイトで利用されていますが、実験段階と考えるべきです。デザインは少々の入力検証を伴ったシンプルなものなので、不正な正規表現の入力もしくは非標準的なコンフィギュレーションによって予期しない振る舞いが起こりえます。

[edit] 関連項目

この拡張機能はWikimediaの一つもしくは複数のwikiで利用されています。このことは拡張機能が安定していて高いトラフィックのウェブサイトでも十分に動作することを意味します。MediaWiki.orgにインストールされている拡張機能の全リストはバージョン情報ページで見ることができます。