Extension:AbuseFilter/cs

Rozšíření AbuseFilter umožňuje uživatelům s rozšířenými právy nastavovat konkrétní akce, které mají být provedeny, pokud akce uživatelů, jako jsou úpravy, splňují určitá kritéria.

Lze například vytvořit filtr, který zabrání neregistrovaným uživatelům přidávat externí odkazy nebo zablokuje uživatele, který odstraní více než 2000 znaků.

Konfigurace


Uživatelská práva
Jakmile jste naistalovali rozšíření, musíte nastavit uživatelská práva v "LocalSettings.php".

Například následující ukázková konfigurace by umožnila sysopům dělat vše, co chtějí s AbuseFilter, a všem prohlížet protokol a vidět nastavení veřejného filtru:

Parametry


Nouzové omezení
AbuseFilter přichází s funkcí, která automaticky omezuje (vypíná) filtry, které byly nedávno upraveny a odpovídají určitému prahu posledních akcí.

To se provádí, aby se zabránilo škodlivým úpravám na filtrech, které zablokují každého uživatele, který provádí akci na wiki nebo podobně.

Podmínka pro deaktivaci filtru závisí na těchto proměnných:
 * - Procento akcí z celkového počtu akcí ve sledovaném období.
 * - Počet shod filtru ve sledovaném období.
 * - Je třeba vzít v úvahu stáří filtru. Pokud je poslední úprava filtru starší než tento počet sekund, filtr nebude omezen, pokud již není omezen.
 * - Maximální počet nedávných akcí, které se mají započítat do hranice. Všimněte si, že každá akce zvyšuje čítač, a jakmile tento čítač dosáhne této nakonfigurované hodnoty, tento čítač a počet nedávných akcí, které odpovídají všem filtrům, jsou resetovány na 0.

Omezené filtry lze identifikovat v seznamu filtrů (Special:AbuseFilter) se stavem,. Omezení probíhá potichu a není možné zjistit, kdy byl filtr omezen.

Když je filtr omezen, neprovádí žádnou nebezpečnou akci (akce obvykle omezené na speciální práva, jako je blokování uživatele nebo jeho odstranění ze skupin, řízené $wgAbuseFilterActionRestrictions), a jsou povoleny pouze "bezpečné" akce (ty, které mohou varovat nebo zabránit probíhající akci). Omezené filtry se nepovolí automaticky. Chcete-li zakázat omezení, musíte upravit filtr. Všimněte si, že musíte skutečně něco změnit z filtru: Stačí změnit něco z poznámek filtru.

Všimněte si, že úprava filtru aktualizuje jeho stáří a může způsobit jeho deaktivaci, pokud znovu dosáhne podmínek pro omezení během krátké doby od poslední úpravy, což vede k nepoužitelnému filtru, pokud vaše wiki obsahuje více úprav zneužití než legitimních.



Vytváření a správa filtrů
Jakmile bylo rozšíření nainstalováno, filtry mohou být zakládány/testovány/měněny/mazány a záznamy mohou být zpřístupněny z ovládací stránky Special:AbuseFilter.


 * Formát pravidel – Základy psaní filtru
 * Akce
 * Globální pravidla
 * Průvodce optimalizací použití limitu podmínek
 * Chcete-li importovat filtry z Wikipedie: Až nainstalujete rozšíření, přejděte na w:Special:AbuseFilter, vyberte filtr (řekněme w:Special:AbuseFilter/3) a poté klikněte na "Exportovat tento filtr na jinou wiki", zkopírujte text, přejděte na "Special:AbuseFilter/import" na vaší wiki, vložte text.
 * m:Small wiki toolkits/Starter kit/AbuseFilter - Průvodce pro malé wiki komunity na metawiki

API
AbuseFilter přidává dva moduly seznamu API, jeden pro podrobnosti o filtrech zneužití ("abusefilters") a jeden pro protokol zneužití, protože je oddělený od ostatních protokolů MediaWiki ("abuselog"). Pomocí API není možné vytvářet nebo upravovat filtry zneužití.

list = abusefilters
Vypíše informace o filtrech


 * Parametry:
 * - ID filtru, od kterého se má začít výčet
 * - ID filtru, u kterého se má zastavit výčet
 * - Směr, kterým se má provést výčet (starší, novější)
 * - Zobrazit pouze filtry, které splňují tato kritéria (enabled|!enabled|deleted|!deleted|private|!private (povoleno|!povoleno|smazáno|!smazáno|soukromé|!soukromé))
 * - Maximální počet filtrů seznamu
 * - Které vlastnosti získat (id|description|pattern|actions|hits|comments|lasteditor|lastedittime|status|private (id|popis|vzor|akce|požadavky|komentáře|lasteditor|lastedittime|stav|soukromé))

Pokud jsou filtry soukromé, budou některé vlastnosti zadané pomocí  chybět, pokud nemáte příslušná uživatelská práva.


 * Příklady:

list = abuselog
Vypíše případy, kdy akce spustily filtr zneužití.


 * Parametry:
 * - Časové razítko, od kterého se má začít vypočítávat
 * - Časové razítko, ve kterém se má přestat vypočítávat
 * - Směr, kterým se má provést výčet (starší, novější)
 * - Zobrazit pouze záznamy, u kterých se o akci pokusil daný uživatel nebo IP adresa.
 * - Zobrazit pouze záznamy, kde se akce týkala dané stránky.
 * - Zobrazit pouze záznamy, které spustily dané ID filtru
 * - Maximální počet filtrů seznamu
 * - Jaké vlastnosti získat: (ids|filter|user|ip|title|action|details|result|timestamp|hidden|revid|wiki)


 * Příklad:



Možné chyby

 * Někteří uživatelé mohou zaznamenat, že vytváření nových filtrů nebo úprava starých filtrů selže a uživatel bude pouze přesměrován na původní stránku. Pokud Wiki používá certifikáty SSL, může být tato chyba způsobena hodnotou, která může používat "http://" místo "https://". Indikací této chyby bude, že prohlížeč zobrazí upozornění https pro stránky Special:AbuseFilter. (Topic:T23dyyih0ofjada5)



Integrace s dalšími rozšířeními
AbuseFilter můžete integrovat s jiným rozšířením různými způsoby.



Přidání proměnných pro filtrování
Je možné přidat nové proměnné, které budou použity ve filtrech zneužití. Seznam příkladů. Chcete-li to provést, měli byste:


 * Přidat handler pro háček . Chcete-li přidat proměnnou, měli byste použít, kde   je název proměnné a   je fragment klíče i18n. Celý klíč bude.
 * Přidat zprávy i18n, které jste vybrali v předchozím bodě.
 * Vybrat obslužný program háčku, kde se bude proměnná používat. V závislosti na vašem případu použití můžete:
 * Použít háček . Toto je specificky myšleno pro proměnné související se stránkou.
 * Použít háček . Toto je specificky myšleno pro proměnné související s uživatelem.
 * Použít háček . Toto je pro proměnné, které nejsou vázány na konkrétní stránku nebo uživatele.
 * Použít háček . To je o něco flexibilnější než ostatní háčky, ale má to nevýhodu: Vaše proměnná nebude k dispozici při zkoumání minulých položek RecentChanges. Pokud chcete tuto funkci implementovat (a doporučuje se to udělat), měli byste použít jeden z výše uvedených háčků a použít jeho třetí parametr.
 * Uvnitř obslužného programu háčku existují dva způsoby, jak přidat proměnnou:
 * "Přímou" cestou je volání . To je ideální pouze tehdy, když je výpočet hodnoty snadný a rychlý: Hodnota se vypočítá, i když ji nebude používat žádný aktivní filtr.
 * "Líný" způsob je volání . Zde je 'method_name' (jedinečný) identifikátor, který bude použit k výpočtu proměnné (doporučuje se před ním uvést název vašeho rozšíření). Pro registraci metody byste měli přidat handler pro háček . U něj byste měli zkontrolovat, zda předaná $method odpovídá vašemu 'method_name', a pokud ano, vypočítat proměnnou. A konečně, $params je pole parametrů, které budete potřebovat k výpočtu proměnné. Ty jsou předány obslužnému háčku computeVariable. Jako příklad si můžete prohlédnout  CentralAuth.



Přidání vlastních akcí
Můžete přidat vlastní obslužné nástroje akcí, takže každý filtr může provádět další akce. Chcete-li to provést, vyberte název akce (od této chvíle 'my-action' (moje akce)) a poté:


 * Vytvořte třídu s názvem např. MyAction, což by mělo rozšířit \MediaWiki\Extension\AbuseFilter\Consequence, což může také implementovat HookAborterConsequence nebo ConsequencesDisablerConsequence
 * Přidejte podporovatele do háčku AbuseFilterCustomActions. Účastník by měl poskytnout zpětné volání, jak je zdokumentováno v dokumentaci háčku, která vrátí instanci třídy vytvořené výše, například:

Pak byste měli přidat následující zprávy i18n. Můžete nahradit 'my_action' např. 'block', abyste viděli, k čemu jsou zprávy:





Přidávání skupin pravidel
Můžete také přidat další skupiny pravidel, které lze použít k seskupení existujících filtrů zneužití. Všimněte si, že v současné době může být každý filtr pouze v jedné skupině (T116642). V současnosti je jediným známým uživatelem této funkce. Chcete-li to provést, měli byste:


 * Připojte název skupiny k
 * Přidejte nějaký kód pro spuštění filtrů s vaší skupinou. Všimněte si, že AbuseFilter to sám o sobě neudělá. Chcete-li to provést, měli byste vytvořit objekt  a předat název vaší skupiny.



Související odkazy

 * Několik wiki WMF, kde je povolen (a s jakou konfigurací)