Jump to content

Extension:TitleBlacklist

From mediawiki.org
This page is a translated version of the page Extension:TitleBlacklist and the translation is 100% complete.


Příručka k rozšířením MediaWiki
TitleBlacklist
Stav rozšíření: stabilní
Implementace Uživatelská práva , API
Popis Blokuje vytváření stránek odpovídajících černé listině regulárních výrazů.
Autoři Victor Vasiliev (VasilievVVdiskuse)
Nejnovější verze 1.5.0 (Průběžně aktualizováno)
Zásady kompatibility Vydání snímků současně s MediaWiki. Hlavní vývojová větev není zpětně kompatibilní.
MediaWiki 1.35+
PHP 7.0+
  • $wgTitleBlacklistLogHits
  • $wgTitleBlacklistUsernameSources
  • $wgTitleBlacklistCaching
  • $wgTitleBlacklistBlockAutoAccountCreation
  • $wgTitleBlacklistSources

  • tboverride
  • tboverride-account
  • titleblacklistlog
Licence GNU General Public License 2.0 nebo novější
Stáhnout
Přeložte rozšíření TitleBlacklist, používá-li lokalizaci z translatewiki.net
Problémy Otevřené úkoly · Nahlásit chybu
Návrh na přejmenování této přípony je projednáván na adrese T254650.

Rozšíření TitleBlacklist umožňuje administrátorům wiki blokovat vytváření, přesun a nahrávání stránek, jejichž název odpovídá jednomu nebo více regulárním výrazům, a také blokovat vytváření účtů se shodnými uživatelskými jmény.

Instalace

Toto rozšíření je součástí MediaWiki 1.21 a vyšší. Zbývající konfigurační pokyny je stále nutné dodržovat.
  • Stáhněte soubor/y a vložte je do adresáře pojmenovaného TitleBlacklist ve vaší složce extensions/.
    Vývojáři a přispěvatelé kódu by si místo toho měli nainstalovat rozšíření from Git pomocí:
    cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/TitleBlacklist
    
  • Na konec vašeho souboru LocalSettings.php přidejte následující kód:
    wfLoadExtension( 'TitleBlacklist' );
    
  • Konfigurace zdrojů černé listiny (viz níže)
  • Yes Dokončeno – Přejděte na stránku Special:Version vaší wiki a zkontrolujte, zda bylo rozšíření úspěšně nainstalováno.
Ve výchozím nastavení se to týká pouze uživatelů, kteří nejsou sysop. Chcete-li to nastavit jako výchozí pro všechny, použijte $wgGroupPermissions['sysop']['tboverride'] = false;.

Konfigurace

Name Default Description
$wgTitleBlacklistSources [] Pole zdrojů černé listiny titulů.

Mělo by být ve formátu pole (název => popis zdroje).

$wgTitleBlacklistUsernameSources '*' Nastaví zdroje, které mohou fungovat jako filtr uživatelských jmen.

"*" je pro všechny. Hodnota false vše zakáže. Pokud chcete omezit výběr na konkrétní zdroje, použijte pole( název zdroje 1, název zdroje 2 ). To může být užitečné, pokud máte sdílený systém pro vytváření účtů, abyste se vyhnuli fragmentaci černé listiny.

$wgTitleBlacklistLogHits false Pokud je hodnota true, zaznamenává do Special:Log/titleblacklist všechny pokusy o vytvoření lokálního účtu, které odpovídají černým listinám. Upozorňujeme, že i když je tato možnost zakázána, protokol bude stále viditelný pro skupiny uživatelů s právem titleblacklistlog.
$wgTitleBlacklistCaching
[
	"warningchance" => 100,
	"expiry" => 900,
	"warningexpiry" => 600
]
?
$wgTitleBlacklistBlockAutoAccountCreation true Také blokuje automaticky vytvořené účty, které odpovídají černým listinám.

Více zdrojů černé listiny

Seznam zakázaných titulků lze získat z více zdrojů mimo lokální zprávu. Pro konfiguraci zdrojů zakázaných titulků použijte kód popsaný níže:

wfLoadExtension( 'TitleBlacklist' );
$wgTitleBlacklistSources = [
    [
         'type' => 'localpage',
         'src'  => 'MediaWiki:Titleblacklist'
    ],
    [
         'type' => 'url',
         'src'  => 'https://meta.wikimedia.org/w/index.php?title=Title_blacklist&action=raw'
    ],
    [
         'type' => 'file',
         'src'  => '/home/wikipedia/blacklists/titles',
    ]
];

Další informace získáte na stránce T113864.

Použití

Černá listina

Černá listina titulů se nachází na stránce MediaWiki:Titleblacklist.

Tato stránka se skládá z regulárních výrazů, každý na samostatném řádku. Každý z nich zakazuje vytváření stránek, jejichž názvy se s ním shodují.

Každý záznam může také obsahovat jeden nebo více atributů. Seznam atributů musí být uzavřen do proměnné <> a oddělen proměnnou |. Možné atributy jsou:

  • autoconfirmed – povolit automaticky potvrzeným uživatelům obejít omezení
  • casesensitive – omezení aplikovat pouze tehdy, když se velká a malá písmena přesně shodují s textem
  • noedit – také zakázat úpravy odpovídajících stránek, které již existují
  • moveonly – zakázat pouze přesuny stránek do odpovídajících nadpisů a povolit běžné vytváření stránek
  • newaccountonly – zakázat pouze vytváření odpovídajících účtů a povolit další akce
  • reupload – povolit nahrávání nových verzí odpovídajících souborů, které již existují
  • errmsg=X – pokud je akce zablokována, zobrazte chybovou zprávu s názvem X namísto standardní zprávy.

Pokud je nainstalováno rozšíření AntiSpoof , lze atribut antispoof použít k normalizaci titulků před jejich kontrolou podle pravidel.

Například:

Foo <autoconfirmed|noedit|errmsg=blacklisted-testpage> # Tento název stránky není povolen
[Bb]ar # Nikdo by o tom neměl psát článek.
.*pandora.* # Toto slovo není povoleno v žádné části názvu stránky.

To, co se zde označuje jako regulární výrazy, nejsou vlastní regulární výrazy, ale spíše dílčí vzory, které jsou vloženy do pevně zakódovaného regulárního výrazu. Tj. dílčí vzor Foo z výše uvedeného příkladu by vytvořil regulární výraz jako /^Foo$/usi.

Podtržítka ("_") v regulárních výrazech budou rozšířením převedena na mezery, protože názvy se porovnávají s jejich textovou formou ("Název stránky" místo "Název_stránky").

Whitelist (bílá listina)

Na adrese MediaWiki:Titlewhitelist je také k dispozici bílá listina. Nejprve se použije černá listina, poté bílá listina. Takže vstup uživatele, který odpovídá položce na černé listině, je blokován, s výjimkou případů, kdy odpovídá položce na bílé listině. Pro použití bílé listiny nemusíte v LocalSettings.php nic konfigurovat. Některé z výše uvedených volitelných atributů pro černou listinu fungují i ​​pro bílou listinu, např. casesensitive.

Přizpůsobení

Varovné zprávy

Pokud je pokus o vytvoření stránky zablokován kvůli zakázanému názvu, zobrazí se uživateli varovná zpráva. Tu lze přizpůsobit pomocí následujících systémových zpráv definovaných v jmenném prostoru Mediawiki:

Vlastní zprávy lze definovat pomocí atributu errmsg.

Příklad: Použití TitleBlacklistu k řízení vytváření uživatelských účtů

Koncepční přehled

Uživatelské jméno pro nové účty bude tímto rozšířením považováno odlišně od uživatelského jména pro nové články. Toto rozšíření přidá před řetězec, který uživatel zadá do pole Uživatelské_jméno na stránce pro vytvoření účtu, řetězec "Uživatel:" (nebo jeho lokalizovaný ekvivalent). Takže když toto rozšíření provádí porovnávání s vašimi regulárními výrazy, jak je znázorněno na MediaWiki:Titleblacklist nebo MediaWiki:Titlewhitelist, bude porovnávat "User:" + <userinput>.

Představte si například, že chcete zablokovat uživatele "jill" jako nového uživatele. Představte si, že máte regulární výraz "jill.* <newaccountonly>" na černé listině a uživatel na stránce pro vytvoření účtu zadá jako uživatelské jméno "jill". Toto projde, protože porovnání, které toto rozšíření provede, bude mezi "jill.*" (regulární výraz) a "User:jill" (konstruovaný vstupní řetězec). Tyto se neshodují, takže je povoleno "jill" (a pravděpodobně jste to nezamýšleli). Pro provedení zamýšleného bloku použijte regulární výraz jako ".*jill.* <newaccountonly>" nebo "User:jill.* <newaccountonly>" pro MediaWiki:Titleblacklist.

Pokud chcete blokovat všechny uživatele kromě těch, kteří odpovídají regulárnímu výrazu, zablokujte všechny uživatele v MediaWiki:Titleblacklist a povolený regulární výraz zapište do MediaWiki:Titlewhitelist.

Jak na to

Pokud chcete, aby všechna uživatelská jména při vytváření účtu sestávala přesně ze dvou jmen oddělených mezerami a s velkým písmenem, postupujte takto:

1. Nainstalujte si TitleBlacklist.

2. Přidejte následující do svého souboru LocalSettings.php

wfLoadExtension( 'TitleBlacklist' );
$wgGroupPermissions['sysop']['tboverride'] = false; 
$wgTitleBlacklistSources = [
  [
    'type' => 'localpage',
    'src'  => 'MediaWiki:Titleblacklist'
  ]
];

3. V https://www.example.com/mywiki/MediaWiki:Titleblacklist přidejte

# Blokujte všechny uživatelské účty a povolte pouze ty, které odpovídají MediaWiki:Titlewhitelistregex 
.* <newaccountonly>

4. V https://www.example.com/mywiki/MediaWiki:Titlewhitelist přidejte

# Povolte pouze dvě jména oddělená mezerou a každé z nich s velkým písmenem, např. "Fred Mew" OK, "Fred mew" selže, "Fredmew" selže.
# Záleží na .* <newaccountonly> na černé listině
User:[A-Z][a-z]+\s[A-Z][a-z]+ <casesensitive>

5. V https://www.example.com/mywiki/MediaWiki:Titleblacklist-forbidden-new-account edit

Vytvoření uživatelského jména "$2" bylo zablokováno. Odpovídá následující položce na černé listině: <code>$1</code>.

Použijte prosím skutečné uživatelské jméno. Uživatelská jména se musí skládat ze dvou jmen oddělených mezerou. Každé jméno musí být napsáno velkým písmenem.

Například:
* "Mary Smith". OK.
* "MarySmith". Neplatné.
* "Mary smith". Neplatné.
* "marysmith". Neplatné.

Pravidla blokování vytváření uživatelských jmen (a vytváření článků) jsou řízena parametry MediaWiki:Titleblacklist a MediaWiki:Titlewhitelist. Tuto zprávu lze upravit na adrese MediaWiki:Titleblacklist-forbidden-new-account.

Testování shod

Modul API action=titleblacklist lze použít k otestování názvu a akce (např. upravit, vytvořit, nový účet) na černé listině. Uživatelé s oprávněním 'tboverride' by měli zajistit, aby zadali parametr tbnooverride.

Například pokud černá listina obsahovala filtr:

.*(.)\1{10}.* <newaccountonly|errmsg=titleblacklist-forbidden-new-account-invalid> # Zakazuje jedenáct nebo více opakujících se stejných znaků v uživatelských jménech

můžete použít API požadavek jako

Výsledek
{
    "titleblacklist": {
        "result": "blacklisted",
        "reason": "<table  class=\"plainlinks fmbox\nfmbox-system \" style=\"\" role=\"presentation\" dir=\"ltr\">\n<tr>\n<td class=\"mbox-image\">\n  [[File:Imbox notice.png|40x40px|link=|alt=]]</td>\n<td class=\"mbox-text\" style=\"\"> The user name \"AAAAAAAAAAA\" [[Mediawiki talk:Titleblacklist|has been blocklisted]] from creation. </td>\n\n</tr>\n</table>",
        "message": "titleblacklist-forbidden-new-account-invalid",
        "line": ".*(.)\1{10}.* &lt;newaccountonly|errmsg=titleblacklist-forbidden-new-account-invalid&gt; # Disallows eleven or more of the same character repeated in usernames"
    }
}

Pokud je nainstalován Scribunto , TitleBlacklist umožňuje testovat, zda konkrétní tituly a akce odpovídají položce v černé listině, pomocí funkce mw.ext.TitleBlacklist.test. Pokud je nalezena shoda, vrátí se podrobnosti o odpovídající položce.

Například pokud černá listina obsahovala filtr:

.*(.)\1{10}.* <newaccountonly|errmsg=titleblacklist-forbidden-new-account-invalid> # Zakazuje jedenáct nebo více opakujících se stejných znaků v uživatelských jménech

spuštění funkce:

mw.ext.TitleBlacklist.test("new-account", "AAAAAAAAAAA")

by vrátilo následující tabulku s podrobnostmi o odpovídající položce:

{
	custommessage = "titleblacklist-forbidden-new-account-invalid",
	message = "titleblacklist-forbidden-new-account-invalid",
	params = {
		errmsg = "titleblacklist-forbidden-new-account-invalid",
		newaccountonly = true
	},
	raw = " .*(.)\1{10}.* <newaccountonly|errmsg=titleblacklist-forbidden-new-account-invalid> # Zakazuje jedenáct nebo více opakujících se stejných znaků v uživatelských jménech",
	regex = ".*(.)\1{10}.*",
	version = 3
}

Vymazání mezipaměti

Obsah černých listin je uložen v mezipaměti. Změny v černých seznamech nakonfigurovaných na adrese URL nebo v souboru na serveru se neprojeví okamžitě. Chcete-li vynutit vymazání mezipaměti, upravte a uložte stránku MediaWiki:Titleblacklist (i když nic nezměníte). Nezáleží na tom, jestli je to nakonfigurované jako blacklist nebo ne. Podívejte se na stránku includes/Hooks.php.

Zdroje informací o regulárních výrazech

Související odkazy