Phabricator のプロジェクト名 #AbuseFilter

Extension:AbuseFilter

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Extension:AbuseFilter and the translation is 100% complete.

Other languages:
العربية • ‎български • ‎català • ‎čeština • ‎dansk • ‎Deutsch • ‎English • ‎español • ‎فارسی • ‎suomi • ‎français • ‎galego • ‎עברית • ‎italiano • ‎日本語 • ‎한국어 • ‎polski • ‎português • ‎português do Brasil • ‎русский • ‎sicilianu • ‎سنڌي • ‎粵語 • ‎中文
MediaWiki 拡張機能マニュアルManual:Extensions
Crystal Clear action run.svg
AbuseFilter

リリースの状態:Extension status 安定

AbuseFilter-Management.png
実装Template:Extension#type User activity, Special page, API
説明Template:Extension#description ウィキでの活動に対して、特定の挙動ベースの制限をかけられるようにする
作者Template:Extension#username
互換性ポリシーCompatibility#mediawiki_extensions リリースブランチ
MediaWikiTemplate:Extension#mediawiki 1.25+
PHPTemplate:Extension#php 5.4+ 推奨
データベースの変更Template:Extension#needs-updatephp はい
テーブルTemplate:Extension#table1 abuse_filterExtension:AbuseFilter/abuse_filter table
abuse_filter_actionExtension:AbuseFilter/abuse_filter_action table
abuse_filter_historyExtension:AbuseFilter/abuse_filter_history table
abuse_filter_logExtension:AbuseFilter/abuse_filter_log table
ライセンスTemplate:Extension#license GNU General Public License 2.0 or later
ダウンロード
パラメーターTemplate:Extension#parameters
  • $wgAbuseFilterActions
  • $wgAbuseFilterConditionLimit
  • $wgAbuseFilterEmergencyDisableThreshold
  • $wgAbuseFilterEmergencyDisableCount
  • $wgAbuseFilterEmergencyDisableAge
  • $wgAbuseFilterParserClass
  • $wgAbuseFilterRestrictions
  • $wgAbuseFilterNotifications
  • $wgAbuseFilterNotificationsPrivate
  • $wgAbuseFilterCentralDB
  • $wgAbuseFilterIsCentral
  • $wgAbuseFilterDisallowGlobalLocalBlocks
  • $wgAbuseFilterBlockDuration
  • $wgAbuseFilterAnonBlockDuration
  • $wgAbuseFilterCustomActionsHandler
  • $wgAbuseFilterValidGroups
  • $wgAbuseFilterDefaultWarningMessage
  • $wgAbuseFilterIPMaxAge
  • $wgAbuseFilterProfile
  • $wgAbuseFilterRuntimeProfile
  • $wgAbuseFilterProfileActionsCap
追加する権限Template:Extension#rights
  • abusefilter-view
  • abusefilter-log
  • abusefilter-log-detail
  • abusefilter-revert
  • abusefilter-private
  • abusefilter-private-log
  • abusefilter-view-private
  • abusefilter-log-private
  • abusefilter-hidden-log
  • abusefilter-hide-log
  • abusefilter-modify
  • abusefilter-modify-restricted
  • abusefilter-modify-global
使用するフックTemplate:Extension#hook
EditFilterMergedManual:Hooks/EditFilterMerged
GetAutoPromoteGroupsManual:Hooks/GetAutoPromoteGroups
AbortMoveManual:Hooks/AbortMove
MovePageCheckPermissionsManual:Hooks/MovePageCheckPermissions
ArticleDeleteManual:Hooks/ArticleDelete
RecentChange_saveManual:Hooks/RecentChange_save
ListDefinedTagsManual:Hooks/ListDefinedTags
ChangeTagsListActiveManual:Hooks/ChangeTagsListActive
LoadExtensionSchemaUpdatesManual:Hooks/LoadExtensionSchemaUpdates
ContributionsToolLinksManual:Hooks/ContributionsToolLinks
UploadVerifyFileManual:Hooks/UploadVerifyFile
UploadVerifyUploadManual:Hooks/UploadVerifyUpload
UploadStashFileManual:Hooks/UploadStashFile
MakeGlobalVariablesScriptManual:Hooks/MakeGlobalVariablesScript
PageContentSaveCompleteManual:Hooks/PageContentSaveComplete
UserMergeAccountFieldsManual:Hooks/UserMergeAccountFields
ParserOutputStashForEditManual:Hooks/ParserOutputStashForEdit

translatewiki.net で翻訳を利用できる場合は、AbuseFilter 拡張機能の翻訳にご協力ください

使用状況とバージョン マトリクスを確認してください。

問題点Phabricator

未解決のタスク · バグを報告

AbuseFilter(不正利用フィルター)拡張機能は利用者が編集等の特定の種類の行動をとった場合、自動的に既定の挙動をするもので、権限を持つ利用者が設定・調整します。 たとえば匿名利用者が外部リンクを追加できなくしたり、2,000キャラクター以上削除した利用者をブロックするなどのフィルターを作成できます。

要件

この拡張機能を導入する際、別の拡張機能などを導入する必要はありませんが、文字列の正規化機能を使用するために Extension:AntiSpoof をインストールすることもできます。

インストール

  • ダウンロードして、ファイルを extensions/ フォルダー内の AbuseFilter という名前のディレクトリ内に配置します。
  • Run Composer to install PHP dependencies, by issuing composer install in the extension directory. (See T173141 for potential complications.)
  • 以下のコードを LocalSettings.php の末尾に追加します:
    wfLoadExtension( 'AbuseFilter' );
    
  • 更新スクリプトを実行します。このスクリプトは、この拡張機能が必要とするデータベース テーブルを自動的に作成します。
  • YesY 完了 – ウィキの「Special:Version」に移動して、拡張機能が正しくインストールされたことを確認します。

MediaWiki 1.26 以前を稼働させている利用者へ:

上記の手順では、wfLoadExtension() を使用してこの拡張機能をインストールする新しい方法を記載しています。

この拡張機能をこれらの過去のバージョン (MediaWiki 1.26 以前) にインストールする必要がある場合は、wfLoadExtension( 'AbuseFilter' ); の代わりに以下を使用する必要があります:

require_once "$IP/extensions/AbuseFilter/AbuseFilter.php";


利用者権限

拡張機能をインストールしたら、LocalSettings.php で利用者権限をセットアップしてください。

権限 説明
abusefilter-modify 不正利用フィルターを変更
abusefilter-view 不正利用フィルターを閲覧
abusefilter-log 不正利用記録を閲覧
abusefilter-log-detail 不正利用記録の詳細項目を閲覧
abusefilter-private 不正利用記録内の非公開データを閲覧
abusefilter-modify-restricted 制限された操作を含む不正利用フィルターを変更
abusefilter-modify-global グローバル不正利用フィルターを作成または変更
abusefilter-revert 指定した不正利用フィルターによるすべての変更を差し戻す
abusefilter-view-private 非公開の不正利用フィルターを閲覧
abusefilter-log-private 非公開の不正利用フィルター記録を閲覧
abusefilter-hide-log 不正利用記録の項目を隠す
abusefilter-hidden-log 隠された不正利用記録を閲覧
abusefilter-private-log 不正利用フィルター非公開記録の調査記録を閲覧

例えば、以下の設定例では、管理者には不正利用フィルターの全操作を、一般利用者には公開しているフィルターに限り設定、ログの閲覧を許可しています。

$wgGroupPermissions['sysop']['abusefilter-modify'] = true;
$wgGroupPermissions['*']['abusefilter-log-detail'] = true;
$wgGroupPermissions['*']['abusefilter-view'] = true;
$wgGroupPermissions['*']['abusefilter-log'] = true;
$wgGroupPermissions['sysop']['abusefilter-private'] = true;
$wgGroupPermissions['sysop']['abusefilter-modify-restricted'] = true;
$wgGroupPermissions['sysop']['abusefilter-revert'] = true;
「非公開」とマークされたフィルターは、abusefilter-modify 権限または abusefilter-view-private 権限のどちらかを持つ利用者のみが閲覧できます。

フィルターの作成と管理

拡張機能がインストールされた後は、Special:AbuseFilterから不正利用フィルター管理ページに飛び、フィルターを作成、テスト、変更、削除できます。

設定

変数名 既定値 説明
$wgAbuseFilterActions array( 'flag' => true, 'throttle' => true, 'warn' => true, 'disallow' => true, 'blockautopromote' => true, 'block' => true, 'rangeblock' => false, 'degroup' => true, 'tag' => true ) 不正利用フィルターが取得できるアクション。
$wgAbuseFilterConditionLimit 1000 フィルターが一つの変更に対して実行されるたびに使用することのできる「条件」数の最大値。(複雑なフィルターは、多くの「条件」を必要になる)
$wgAbuseFilterValidGroups 'default' 「グループ」フィルターの一覧を分割できます。既定ではグループは1件だけです。
$wgAbuseFilterEmergencyDisableThreshold array( 'default' => 0.05 ) 検出頻度の多いフィルターを無効にする設定。例えばこの標準設定の場合、フィルターが2回を超える編集にマッチし、最近の編集の5%を超えて構成され、かつ最後更新から86400秒(一日)以内に変更されていない場合、フィルターは無効になる。
$wgAbuseFilterEmergencyDisableCount array( 'default' => 2 )
$wgAbuseFilterEmergencyDisableAge array( 'default' => 86400 )
$wgAbuseFilterParserClass 'AbuseFilterParser' 不正利用フィルターのパーサークラスの名前。
$wgAbuseFilterRestrictions array( 'block' => true, 'degroup' => true, 'blockautopromote' => true, 'rangeblock' => true ) フィルターを作成する際、これらの対処発動を設定できるのは「abusefilter-modify」の他、「abusefilter-modify-restricted」権限を持っている利用者のみ。
$wgAbuseFilterNotifications false 最近の更新やUDPにフィルター検出記録を表示させることができる。 オプションは、 rc, udp, rcandudp
$wgAbuseFilterNotificationsPrivate false 非公開フィルターの通知を有効にするかどうか。
$wgAbuseFilterCentralDB null グローバル不正利用フィルターが保存されるデータベースの名前 (対応は最新の開発版に限定)。
$wgAbuseFilterIsCentral false グローバルな不正利用フィルターが保存されるウィキに対してこの変数を true にセット(グローバルフィルターを利用している場合)。
$wgAbuseFilterDisallowGlobalLocalBlocks false Centralised フィルターを無効にする。ローカルのブロック、グループから除外、許可の巻き戻しができなくなる。
$wgAbuseFilterBlockDuration 'indefinite' 不正利用フィルターにより投稿ブロック処置が取られた場合の持続期間。

注 注: バージョン 1.31.0-wmf.25 からはフィルタ毎に指定したブロック持続期間が優先適用されます。

$wgAbuseFilterAnonBlockDuration null 簡単に言えば、 $wgAbuseFilterBlockDuration の匿名利用者版。これが設定されていない場合、 $wgAbuseFilterBlockDuration の値が優先される。

注 注: バージョン 1.31.0-wmf.25 からはフィルタ毎に指定したブロック持続期間が優先適用されます。

$wgAbuseFilterCustomActionsHandlers array() 特定のアクションのコールバック機能。
$wgAbuseFilterValidGroups array('default') 有効な「フィルター・グループ」 – 特定のアクションを対象に編集フィルターを適用
$wgAbuseFilterDefaultWarningMessage array( 'default' => 'abusefilter-warning' ) フィルター単位の既定の警告メッセージ群
$wgAbuseFilterLogIPMaxAge 3 * 30 * 24 * 3600 IPアドレスログの保持期間。標準設定では3ヶ月(90日)となっている。メンテナンススクリプト「purgeOldLogIPData.php」がこの変数を利用する。
$wgAbuseFilterProfile false
MediaWiki バージョン: 1.27

フィルタのパフォーマンスに関するデータを記録するかどうか – 使用した平均条件数と各フィルタの消費時間。

(MediaWiki で 1.25 まで有効、1.26 でパフォーマンス上の理由で完全に削除され、その後 1.27 で回復。)

$wgAbuseFilterRuntimeProfile false 各実行時にランタイム、条件および一致したフィルターの合計を計算して記録するかどうか。
$wgAbuseFilterProfileActionsCap 10000 プロファイリング統計のリセット基準となるアクション件数


API

不正利用フィルターは2つのAPIリストモジュールを作成します。一つは不正利用フィルター ("abusefilters") 、もう一つは不正利用ログの詳細情報です。これらは他の MediaWiki のログ ("abuselog") からは分離されているので、 API を使用しての不正利用フィルターの作成や修正はできません。

list = abusefilters

以下にフィルターについての情報を提示しています。

Parameters
  • abfstartid: 列挙を開始するフィルタID
  • abfendid: 列挙を停止するフィルタID
  • abfdir: 列挙する方向(古い順、新しい順)
  • abfshow: これらの基準を満たすフィルタのみ表示(enabled|!enabled|deleted|!deleted|private|!private)
  • abflimit: リストするフィルタの上限
  • abfprop: 取得するプロパティ (id|description|pattern|actions|hits|comments|lasteditor|lastedittime|status|private)

フィルターの提供時に abfprop で指定したプロパティの一部は適切な利用者権限がない限り検出されません。

非公開以外の不正利用フィルターを列挙

list = abuselog

不正利用フィルターで作動するインスタンスの一覧。

Parameters
  • aflstart: 列挙を開始するタイムスタンプ
  • aflend: 列挙を停止するタイムスタンプ
  • afldir: 列挙する方向 (古い順、新しい順)
  • afluser: 特定のユーザーもしくはIP アドレスが試行したエントリに限定。
  • afltitle: アクションが特定のページに関するエントリのみ表示。
  • aflfilter: 特定のフィルタIDを起動したエントリのみ表示
  • afllimit: リストするエントリの上限
  • aflprop: 取得するプロパティ(ids|user|title|action|result|timestamp|details)

利用者 "SineBot" からのアクションに対応して不正利用フィルターが作動したインスタンスの一覧を表示する

Possible errors

  • Some users might experience that creating new filters or modifying old filters fail and the user just gets redirected to the original page. If the Wiki is using SSL certificates, this error could possibly be because of the $wgServer value, which might be using "http://" instead of "https://". An indication of this error will be, the browser giving https warning for Special:AbuseFilter pages. (Topic:T23dyyih0ofjada5)

関連項目