Open main menu

Расширение: AbuseFilter

This page is a translated version of the page Extension:AbuseFilter and the translation is 48% complete.
Outdated translations are marked like this.
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
Реализация User activity , Special page , API
Описание Позволяет применять конкретные ограничения к активности в вики.
Автор(ы)
Политика совместимости ветвь релиза
MediaWiki 1.33+
PHP рекомендуется 5.4+
Изменения БД Да
Таблицы abuse_filter
abuse_filter_action
abuse_filter_history
abuse_filter_log
Лицензия GNU General Public License 2.0 or later
Загрузка
  • $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
Переведите расширение AbuseFilter если оно доступно на translatewiki.net
Проверьте использование и версию.
Проблемы Открытые задачи · Сообщить об ошибке

Расширение AbuseFilter позволяет привилегированным пользователям устанавливать фильтры, контролирующие действия участников и автоматически реагирующие на определённое поведение.

Например, может быть создан фильтр, чтобы запретить анонимным пользователям добавлять внешние ссылки или блокировать пользователей, удаляющих более 2000 символов.

Установка

  • Скачайте и распакуйте файл(ы) в папку с названием AbuseFilter в вашей папке extensions/.
  • Запустите Composer для установки зависимостей PHP, запустив composer install --no-dev в каталоге расширений. (Смотрите T173141 о возможных осложнениях.)
  • Добавьте следующий строки в конец файла 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 просмотр журнала доступа к личной информации фильтров злоупотребления

Например, следующая конфигурация дает администратору полный доступ к AbuseFilter:

$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'
]
Список фильтров можно разделить на «группы». По умолчанию есть только одна группа. Другие расширения могут добавлять другие группы.
$wgAbuseFilterEmergencyDisableThreshold
[
    'default' => 0.05
]
Отключите фильтр, если он соответствует более чем 2-м изменениям, составляющим более 5% действий, которые были проверены в группе фильтра в «наблюдаемый» период (максимум один день), если фильтр не был изменен за последние 86400 секунд (один день) См. emergency throttling.
$wgAbuseFilterEmergencyDisableCount
[
    'default' => 2
]
$wgAbuseFilterEmergencyDisableAge
[
    'default' => 86400
]
$wgAbuseFilterParserClass
'AbuseFilterParser'
Наименование класса парсера фильтра злоупотреблений.
$wgAbuseFilterRestrictions
[
    'block' => true,
    'degroup' => true,
    'blockautopromote' => true,
    'rangeblock' => true
]
Пользователи должны иметь право "abusefilter-modify-restricted" или "abusefilter-modify", чтобы создать или изменить фильтры, которые осуществляют эти действия.
$wgAbuseFilterNotifications
false
Позволяет настроить расширение для отправки уведомлений о попаданиях в специальные: RecentChanges или UDP. Другие расширения могут добавлять другие группы. rc, udp, rcandudp
$wgAbuseFilterNotificationsPrivate
false
Включить уведомления для частных фильтров.
$wgAbuseFilterCentralDB
null
Имя базы данных, где будет храниться глобальный фильтр злоупотреблений (поддерживается только в последней, разрабатываемой версии).
$wgAbuseFilterIsCentral
false
Установите эту переменную в true если используется глобальный фильтр злоупотреблений (поддерживается только в последнем, разрабатываемой версии).
$wgAbuseFilterDisallowGlobalLocalBlocks
false
Disallow Centralised filters from taking actions that locally block, remove from groups, or revoke permissions.
$wgAbuseFilterBlockDuration
'indefinite'
Продолжительность блокировки, совершаемой фильтром злоупотреблений.
as of 1.31.0-wmf.25 block durations may be specified for every single filter and will override this variable. This variable is only used when enabling the block in order to preselect a default duration.
$wgAbuseFilterAnonBlockDuration
null
Продолжительность блокировки, сделанных фильтром злоупотреблений, на пользователей, которые не вошли в систему. Значение $wgAbuseFilterBlockDuration будет использоваться, если оно не установлено.
as of 1.31.0-wmf.25 block durations may be specified for every single filter and will override this variable. This variable is only used when enabling the block in order to preselect a default duration.
$wgAbuseFilterCustomActionsHandlers
[ ]
Callback functions for custom actions.
$wgAbuseFilterDefaultWarningMessage
[
    'default' => 'abusefilter-warning'
]
Default warning messages, per filter group
$wgAbuseFilterLogIPMaxAge
3 * 30 * 24 * 3600
Age used as cutoff when purging old IP log data. Defaults to 3 months. Used by maintenance script purgeOldLogIPData.php.
$wgAbuseFilterProfileActionsCap
10000
Number of action that determines when to reset profiling stats.
$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

AbuseFilter добавляет два API-модуля, один для фильтров злоупотреблений ("abusefilters") и один для журнала злоупотреблений, так как он является самостоятельным журналом ("abuselog").

list = abusefilters

Список информации о фильтрах

;Параметры
  • abfstartid: Фильтр ID начинает перечисление от
  • abfendid: Фильтр ID останавливает перечисления на
  • abfdir: Направление, в котором перечислять (старые, новые)
  • abfshow: Показать только фильтры, которые отвечают этим критериям (включен|!включен|удален|!удален|частный|!частный)
  • abflimit: Максимальное количество фильтров в списоке
  • abfprop: Какие свойства, чтобы получить (ID|описание|модели|действия|хиты| комментарии|последнее изменение|последнее изменение по времени|статус|частный):
  • abfstartid - The filter id to start enumerating from
  • abfendid - The filter id to stop enumerating at
  • abfdir - The direction in which to enumerate (older, newer)
  • abfshow - Show only filters which meet these criteria (enabled|!enabled|deleted|!deleted|private|!private)
  • abflimit - The maximum number of filters to list
  • abfprop - Which properties to get (id|description|pattern|actions|hits|comments|lasteditor|lastedittime|status|private)

Когда фильтры являются непубличными, некоторые свойства с указанием функции abfprop будут отсутствовать, если у вас нет соответствующих прав доступа.

;Примеры

Просмотр публичных фильтров злоупотреблений

list = abuselog

Список случаев, когда действия вызвали фильтр злоупотреблений.

;Параметры
  • aflstart: Отметка начать перечислять от
  • aflend: Отметка остановить перечисления в
  • afldir: Направление, в котором перечислить (старые, новые)
  • afluser: Показать только записи, где действие было предпринято пользователем или IP адресом.
  • afltitle: Показать только записи, где в акции приняли участие на данной странице.
  • aflfilter: Показать только записи, которые вызвали данный ID фильтра
  • afllimit: максимальное число записей в списке
  • aflprop: Какие свойства получить (идентификаторы|пользователи|названия|действия |результаты|метки|подробнее):
  • aflstart - The timestamp to start enumerating from
  • aflend - The timestamp to stop enumerating at
  • afldir - The direction in which to enumerate (older, newer)
  • afluser - Show only entries where the action was attempted by a given user or IP address.
  • afltitle - Show only entries where the action involved a given page.
  • aflfilter - Show only entries that triggered a given filter ID
  • afllimit - The maximum number of entries to list
  • aflprop - Which properties to get (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)

См. также