Open main menu

Extension:AbuseFilter

This page is a translated version of the page Extension:AbuseFilter and the translation is 77% complete.
Other languages:
Deutsch • ‎English • ‎Türkçe • ‎català • ‎dansk • ‎español • ‎français • ‎galego • ‎magyar • ‎polski • ‎português • ‎português do Brasil • ‎română • ‎sicilianu • ‎čeština • ‎български • ‎русский • ‎עברית • ‎سنڌي • ‎فارسی • ‎हिन्दी • ‎中文 • ‎日本語 • ‎粵語 • ‎한국어
MediaWiki 拡張機能マニュアル
OOjs UI icon advanced.svg
AbuseFilter
リリースの状態: 安定
AbuseFilter-Management.png
実装 利用者アクティビティ , 特別ページ , API
説明 ウィキでの活動に対して、特定の挙動ベースの制限をかけられるようにする
作者
互換性ポリシー リリースブランチ
MediaWiki 1.33+
PHP 5.4+ 推奨
データベースの変更 はい
テーブル abuse_filter
abuse_filter_action
abuse_filter_history
abuse_filter_log
ライセンス GNU 一般公衆利用許諾書 2.0 以降
ダウンロード
  • $wgAbuseFilterActions
  • $wgAbuseFilterConditionLimit
  • $wgAbuseFilterEmergencyDisableThreshold
  • $wgAbuseFilterEmergencyDisableCount
  • $wgAbuseFilterEmergencyDisableAge
  • $wgAbuseFilterParserClass
  • $wgAbuseFilterRestrictions
  • $wgAbuseFilterNotifications
  • $wgAbuseFilterNotificationsPrivate
  • $wgAbuseFilterCentralDB
  • $wgAbuseFilterIsCentral
  • $wgAbuseFilterDisallowGlobalLocalBlocks
  • $wgAbuseFilterBlockDuration
  • $wgAbuseFilterAnonBlockDuration
  • $wgAbuseFilterCustomActionsHandler
  • $wgAbuseFilterValidGroups
  • $wgAbuseFilterDefaultWarningMessage
  • $wgAbuseFilterIPMaxAge
  • $wgAbuseFilterProfileActionsCap
  • $wgAbuseFilterLogPrivateDetailsAccess
  • $wgAbuseFilterPrivateDetailsForceReason
  • abusefilter-view
  • abusefilter-log
  • abusefilter-log-detail
  • abusefilter-revert
  • abusefilter-privatedetails
  • abusefilter-privatedetails-log
  • abusefilter-view-private
  • abusefilter-log-private
  • abusefilter-hidden-log
  • abusefilter-hide-log
  • abusefilter-modify
  • abusefilter-modify-restricted
  • abusefilter-modify-global
translatewiki.net で翻訳を利用できる場合は、AbuseFilter 拡張機能の翻訳にご協力ください
使用状況とバージョン マトリクスを確認してください。
問題点 未解決のタスク · バグを報告

AbuseFilter(不正利用フィルター)拡張機能は利用者が編集等の特定の種類の行動をとった場合、自動的に既定の挙動をするもので、権限を持つ利用者が設定・調整します。

たとえば匿名利用者が外部リンクを追加できなくしたり、2,000キャラクター以上削除した利用者をブロックするなどのフィルターを作成できます。

インストール

  • ダウンロードして、ファイルを extensions/ フォルダー内の AbuseFilter という名前のディレクトリ内に配置します。
  • git からのインストールの場合のみ、PHP の依存関係をインストールするため Composer を実行します。拡張機能のディレクトリで composer install --no-dev を実行します。 (See T173141 for potential complications.)
  • 以下のコードを LocalSettings.php の末尾に追加します:
    wfLoadExtension( 'AbuseFilter' );
    
  • 更新スクリプトを実行します。このスクリプトは、この拡張機能が必要とするデータベース テーブルを自動的に作成します。
  • Configure as required.
  •   完了 – ウィキの「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-privatedetails 不正利用記録内の非公開データを閲覧
abusefilter-modify-restricted 制限された操作を含む不正利用フィルターを変更
abusefilter-modify-global グローバル不正利用フィルターを作成または変更
abusefilter-revert 指定した不正利用フィルターによるすべての変更を差し戻す
abusefilter-view-private 非公開の不正利用フィルターを閲覧
abusefilter-log-private 非公開の不正利用フィルター記録を閲覧
abusefilter-hide-log 不正利用記録の項目を隠す
abusefilter-hidden-log 隠された不正利用記録を閲覧
abusefilter-privatedetails-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 権限のどちらかを持つ利用者のみが閲覧できます。

パラメーター

変数名 既定値 説明
$wgAbuseFilterActions
[
    'throttle' => true,
    'warn' => true,
    'disallow' => true,
    'blockautopromote' => true,
    'block' => true,
    'rangeblock' => false,
    'degroup' => true,
    'tag' => true
]
不正利用フィルターが取得できるアクション。 新しいアクションを追加する前に、$wgAbuseFilterRestrictionsで制限されているかどうか確認し、制限されている場合には必ず、適合する利用者グループに対してabusefilter-modify-restricted権限を付与してください。
$wgAbuseFilterConditionLimit
1000
フィルターが一つの変更に対して実行されるたびに使用することのできる「条件」数の最大値。(複雑なフィルターは、多くの「条件」を必要になる)
$wgAbuseFilterValidGroups
[
    'default'
]
「グループ」フィルターの一覧を分割できます。既定ではグループは1件だけです。 他の拡張機能によってグループが追加されることがあります。
$wgAbuseFilterEmergencyDisableThreshold
[
    'default' => 0.05
]
検出頻度の多いフィルターを無効にする設定。例えばこの標準設定の場合、フィルターが2回を超える編集にマッチし、最近の編集の5%を超えて構成され、かつ最後更新から86400秒(一日)以内に入って変更されていない場合、フィルターは無効になる。 See emergency throttling.
$wgAbuseFilterEmergencyDisableCount
[
    'default' => 2
]
$wgAbuseFilterEmergencyDisableAge
[
    'default' => 86400
]
$wgAbuseFilterParserClass
'AbuseFilterParser'
不正利用フィルターのパーサークラスの名前。
$wgAbuseFilterRestrictions
[
    'block' => true,
    'degroup' => true,
    'blockautopromote' => true,
    'rangeblock' => true
]
フィルターを作成する際、これらの対処発動を設定できるのは「abusefilter-modify」の他、「abusefilter-modify-restricted」権限を持っている利用者のみ。
$wgAbuseFilterNotifications
false
拡張機能がフィルター検出記録を Special:RecentChanges (最近の更新) や 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
[ ]
特定のアクションのコールバック機能。
$wgAbuseFilterDefaultWarningMessage
[
    'default' => 'abusefilter-warning'
]
フィルター単位の既定の警告メッセージ群
$wgAbuseFilterLogIPMaxAge
3 * 30 * 24 * 3600
IPアドレスログの保持期間。標準設定では3ヶ月(90日)となっている。メンテナンススクリプト「purgeOldLogIPData.php」がこの変数を利用する。
$wgAbuseFilterProfileActionsCap
10000
プロファイリング統計のリセット基準となるアクション件数
$wgAbuseFilterLogPrivateDetailsAccess
false
Whether accessing private information from a filter log entry is logged.
$wgAbuseFilterPrivateDetailsForceReason
false
Whether users are forced to provide a reason for accessing private information from a filter log entry.

Emergency throttling

AbuseFilter comes with a feature that automatically throttles (disable) filters that have been edited recently and match a certain theresold of the latest actions.

This is done to prevent harmful edits on the filters to block every user that performs an action on the wiki or similar.

The condition to disable the filter depend on those variables:

  • $wgAbuseFilterEmergencyDisableThreshold - Percent of matches over the total amount of actions in the observed period.
  • $wgAbuseFilterEmergencyDisableCount - Count of matches of the filter in the observed period.
  • $wgAbuseFilterEmergencyDisableAge - Age of the filter to take it into account. If the last edit of the filter is older than this number of seconds, the filter won't be throttled, unless it's already throttled.
  • $wgAbuseFilterProfileActionsCap - Maximum number of recent actions to count against the threshold. Note that each action increments a counter, and once this counter reaches this configured value, this counter and the number of recent actions that matches all filters are reset to 0.

Throttled filters can be identified in the list of filters (Special:AbuseFilter) with the state Enabled, throttled. Throttling happens silently, and there's no way to see when a filter got throttled.

When a filter gets throttled, it doesn't perform any dangerous action (the ones specified in $wgAbuseFilterRestrictions), and only "safe" actions are allowed. Throttled filters don't get enabled automatically. To disable the throttling, you need to edit the filter. Note that you need to actually change something from the filter: changing somethin from the filter's notes is sufficient.

Note that editing the filter updates its age, and can cause it to be disabled if it reaches again the conditions to be throttled in a short period since the last edit, leading to a unusable filter if your wiki has more abuse edits than legitimate ones. Filters can also get randomly throttled if the action count reaches $wgAbuseFilterProfileActionsCap, causing all filter matches count to reset to 0, and then someone repeatedly makes a filter to hit.

フィルターの作成と管理

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

API

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

list = abusefilters

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

パラメーター
  • 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

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

パラメーター
  • aflstart - 列挙を開始するタイムスタンプ
  • aflend - 列挙を停止するタイムスタンプ
  • afldir - 列挙する方向 (古い順、新しい順)
  • afluser - 特定の利用者または IP アドレスが試行したエントリーに限定。
  • afltitle - 操作が特定のページに関するエントリーのみ表示。
  • aflfilter - 特定のフィルター ID を起動したエントリーのみ表示
  • afllimit - 列挙するエントリー数の最大値
  • aflprop - 取得するプロパティ (ids|user|title|action|result|timestamp|details)

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

起こりうるエラー

  • 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)

関連項目