Rozszerzenie:Filtr nadużyć

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Extension:AbuseFilter and the translation is 53% 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 • ‎български • ‎русский • ‎עברית • ‎سنڌي • ‎فارسی • ‎हिन्दी • ‎中文 • ‎日本語 • ‎粵語 • ‎한국어
Podręcznik rozszerzeń MediaWiki
OOjs UI icon advanced.svg
AbuseFilter
Status wydania: stabilne
AbuseFilter-Management.png
Realizacja Aktywność użytkownika , Strona specjalna , API
Opis Zezwala na umieszczanie określonych ograniczeń w działalności wiki, w oparciu na działania
Autor(zy)
Polityka zgodności gałęzie wydań
MediaWiki 1.33+
PHP zalecane 5.4+
Zmiany w bazie danych Tak
Tabele abuse_filter
abuse_filter_action
abuse_filter_history
abuse_filter_log
Licencja GNU General Public License 2.0 or later
Pobieranie
  • $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
Przetłumacz rozszerzenie AbuseFilter jeżeli jest dostępne na translatewiki.net
Sprawdź wykorzystywanie i matrycę wersji.
Problemy Otwarte zadania · Zgłoś błąd

Rozszerzenie Filtr nadużyć pozwala uprzywilejowanym użytkownikom określenie konkretnych działań, które mają być podjęte, kiedy działania użytkowników, takie jak edycje, spełniają określone kryteria.

Na przykład można utworzyć filtr blokujący niezalogowanym dodawanie linków lub blokujący konto, jeżeli użytkownik usunie więcej niż 2000 znaków.

Instalacja

  • Pobierz i umieść plik(i) w katalogu o nazwie AbuseFilter w swoim katalogu extensions/.
  • Uruchom Composer, aby zainstalować zależności PHP, poprzez wywołanie composer install --no-dev w katalogu rozszerzenia. (See T173141 for potential complications.)
  • Dodaj poniższy kod na dole swojego pliku LocalSettings.php:
    wfLoadExtension( 'AbuseFilter' );
    
  • Uruchom skrypt aktualizujący, który automatycznie stworzy potrzebne tabele dla tego rozszerzenia.
  • Configure as required.
  • Yes Zrobione – Przejdź do Special:Version na swojej wiki, aby sprawdzić czy rozszerzenie zostało pomyślnie zainstalowane.

Do użytkowników mających wersję MediaWiki 1.26 lub wcześniejszą:

Powyższe instrukcje opisują nowy sposób instalowania tego rozszerzenia, poprzez wfLoadExtension(). Jeżeli chcesz zainstalować to rozszerzenie we wcześniejszych wersjach (MediaWiki 1.26 i wcześniejsze), zamiast wfLoadExtension( 'AbuseFilter' ); użyj:

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

Konfiguracja

Uprawnienia

Po zainstalowaniu rozszerzenia, musisz skonfigurować uprawnienia w "LocalSettings.php".

Uprawnienie Opis
abusefilter-modify Modyfikowanie filtrów nadużyć
abusefilter-view Podgląd filtrów nadużyć
abusefilter-log Podgląd rejestru nadużyć
abusefilter-log-detail Podgląd szczegółów wpisów w rejestrze nadużyć
abusefilter-privatedetails Podgląd prywatnych danych w rejestrze nadużyć
abusefilter-modify-restricted Modyfikowanie filtrów nadużyć z zastrzeżonymi operacjami
abusefilter-modify-global Tworzenie lub modyfikowanie globalnych filtrów nadużyć
abusefilter-revert Anulowanie wszystkich zmian wykonanych przez podany filtr nadużyć
abusefilter-view-private Przeglądanie filtrów nadużyć oznaczonych jako prywatne
abusefilter-log-private Wyświetlanie wpisów do logów filtrów nadużyć oznaczonych jako prywatne
abusefilter-hide-log Ukrywanie wpisów w rejestrze nadużyć
abusefilter-hidden-log Podgląd ukrytych wpisów w rejestrze nadużyć
abusefilter-privatedetails-log Podgląd rejestru dostępu do prywatnych szczegółów filtru nadużyć

Dla przykładu, ta konfiguracja pozwala administratorom zrobić wszystko, co chcą z AbuseFilterem, a każdy może zajrzeć w logi i zobaczyć publiczne ustawienia filtru.

$wgGroupPermissions['sysop']['abusefilter-modify'] = true;
$wgGroupPermissions['*']['abusefilter-log-detail'] = true;
$wgGroupPermissions['*']['abusefilter-view'] = true;
$wgGroupPermissions['*']['abusefilter-log'] = true;
$wgGroupPermissions['sysop']['abusefilter-privatedetails'] = true;
$wgGroupPermissions['sysop']['abusefilter-modify-restricted'] = true;
$wgGroupPermissions['sysop']['abusefilter-revert'] = true;
Filtry oznaczone jako prywatne mogą być wyświetlone tylko przez użytkowników z uprawnieniem abusefilter-modify lub abusefilter-view-private.

Parameters

Nazwa zmiennej Domyślna wartość Opis
$wgAbuseFilterActions
[
    'throttle' => true,
    'warn' => true,
    'disallow' => true,
    'blockautopromote' => true,
    'block' => true,
    'rangeblock' => false,
    'degroup' => true,
    'tag' => true
]
Prawdopodobne akcje, które mogą być wykonane przez filtry nadużyć. Dodając nową akcję, sprawdź, czy jest ona ograniczona w $wgAbuseFilterRestrictions, a jeśli tak, to nie zapomnij dodać uprawnienia abusefilter-modify-restricted do odpowiednich grup użytkowników.
$wgAbuseFilterConditionLimit
1000
Maksymalna liczba 'warunków', które mogą być używane za każdym razem, gdy filtry są uruchamiane względem zmiany. (Bardziej skomplikowane filtry wymagają więcej 'warunków').
$wgAbuseFilterValidGroups
[
    'default'
]
Listę filtrów "grup" można podzielić na. Domyślnie jest tylko jedna grupa. Other extensions may add other groups.
$wgAbuseFilterEmergencyDisableThreshold
[
    'default' => 0.05
]
Wyłącz filtr, jeśli pasował do więcej niż 2 edycji, stanowiących ponad 5% akcji, które zostały sprawdzone względem grupy filtra w okresie "obserwowanym" (co najwyżej jeden dzień), chyba że filtr został zmieniony w ciągu ostatnich 86400 sekund (pewnego dnia) See emergency throttling.
$wgAbuseFilterEmergencyDisableCount
[
    'default' => 2
]
$wgAbuseFilterEmergencyDisableAge
[
    'default' => 86400
]
$wgAbuseFilterParserClass
'AbuseFilterParser'
Nazwa klasy parsera filtru nadużyć.
$wgAbuseFilterRestrictions
[
    'block' => true,
    'degroup' => true,
    'blockautopromote' => true,
    'rangeblock' => true
]
Użytkownicy muszą mieć uprawnienie "abusefilter-modify-restricted" jak równiez "abusefilter-modify" by utworzyć lub zmodyfikować filtry które wykonują te akcje.
$wgAbuseFilterNotifications
false
Pozwala skonfigurować rozszerzenie, aby wysyłać powiadomienia o trafieniach na Specjalne:RecentChanges lub UDP. Dostępne ustawienia: rc, udp, rcandudp
$wgAbuseFilterNotificationsPrivate
false
Włącz powiadomienia o filtrach prywatnych.
$wgAbuseFilterCentralDB
null
Nazwa bazy danych, gdzie globalne filtry nadużyć będą przechowywane (wspierane tylko w ostatniej wersji rozwojowej).
$wgAbuseFilterIsCentral
false
Ustaw tej zmiennej wartość "prawda" na wiki, gdzie globalne filtry nadużyć są przechowywane (wspierane tylko w ostatniej wersji rozwojowej).
$wgAbuseFilterDisallowGlobalLocalBlocks
false
Nie zezwalaj na scentralizowane filtrowanie działań podejmowanych lokalnie blokowanie, usuwanie z grup lub cofanie uprawnień.
$wgAbuseFilterBlockDuration
'indefinite'
Czas trwania blokad tworzonych przez filtr nadużyć.
od 1.31.0-wmf.25 czasy trwania bloku mogą być określone dla każdego pojedynczego filtra i zastąpią tę zmienną. Ta zmienna jest używana tylko przy włączaniu bloku w celu wybrania domyślnego czasu trwania.
$wgAbuseFilterAnonBlockDuration
null
Czas blokowania przez AbuseFilter użytkowników, którzy nie są zalogowani. Wartość $wgAbuseFilterBlockDuration zostanie użyta, jeśli nie jest ustawiona.
od 1.31.0-wmf.25 czasy trwania bloku mogą być określone dla każdego pojedynczego filtra i zastąpią tę zmienną. Ta zmienna jest używana tylko przy włączaniu bloku w celu wybrania domyślnego czasu trwania.
$wgAbuseFilterCustomActionsHandlers
[ ]
Funkcje oddzwaniania dla działań niestandardowych.
$wgAbuseFilterDefaultWarningMessage
[
    'default' => 'abusefilter-warning'
]
Domyślne komunikaty ostrzegawcze dla każdej grupy filtrów
$wgAbuseFilterLogIPMaxAge
3 * 30 * 24 * 3600
Wiek używany jako odcięcie podczas usuwania starych danych dziennika IP. Domyślnie 3 miesiące. Używany przez skrypt konserwacyjny purgeOldLogIPData.php.
$wgAbuseFilterProfileActionsCap
10000
Liczba akcji określająca, kiedy resetować statystyki profilowania.
$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.

Tworzenie i zarządzanie filtrami

Po zainstalowaniu rozszerzenia, filtry mogą być utworzone/testowane/zmieniane/usuwane na stronie Special:AbuseFilter, tam też można uzyskać dostęp do rejestrów nadużyć.

API

AbuseFilter dodaje dwa moduły listy API, jeden dla szczegółów filtrów nadużycia ("abusefilters") i jeden dla dziennika nadużycia, ponieważ jest oddzielny od innych dzienników MediaWiki ("abuselog"). Nie można tworzyć ani modyfikować filtrów nadużycia za pomocą interfejsu API.

list = abusefilters

Lista informacji o filtrach

;Parametry
  • abfstartid: Identyfikator filtra, od którego rozpoczyna się wyliczanie
  • abfendid: Identyfikator filtra, który przestaje wyliczać w
  • abfdir: Kierunek wyliczania (starszy, nowszy)
  • abfshow: Pokaż tylko filtry, które spełniają te kryteria (enabled|!enabled|deleted|!deleted|private|!private)
  • abflimit: Maksymalna liczba filtrów do wyświetlenia
  • abfprop: Jakie właściwości uzyskać (id|description|pattern|actions|hits|comments|lasteditor|lastedittime|status|private):
  • 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)

Gdy filtry są prywatne, niektóre właściwości określone za pomocą abfprop będą niedostępne, chyba że masz odpowiednie prawa użytkownika.

;Przykłady

Wypisz publiczne filtry nadużyć

list = abuselog

Lista instancji, w których akcje uruchomiły filtr nadużycia.

;Parametery
  • aflstart: Znacznik czasu, od którego zaczyna się wyliczanie
  • aflend: Znacznik czasu, aby zatrzymać wyliczanie w
  • afldir: Kierunek wyliczania (starszy, nowszy)
  • afluser: Pokaż tylko wpisy, w których próba została podjęta przez danego użytkownika lub adres IP.
  • afltitle: Pokaż tylko wpisy, w których akcja dotyczyła danej strony.
  • aflfilter: Pokaż tylko wpisy, które wyzwoliły dany identyfikator filtra
  • afllimit: Maksymalna liczba wpisów do listy
  • aflprop: Jakie właściwości uzyskać (ids|user|title|action|result|timestamp|details):
  • 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)
;Przykład

Lista instancji, w których filtr nadużycia został wywołany w odpowiedzi na działania użytkownika "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)

Zobacz też