Rozszerzenie:TitleBlacklist
TitleBlacklist Status wydania: stabilne |
|
---|---|
Realizacja | Uprawnienia użytkownika , API |
Opis | Blokuje tworzenie stron pasujących do czarnej listy wyrażeń regularnych. |
Autor(zy) | Victor Vasiliev (VasilievVVdyskusja) |
Ostatnia wersja | 1.5.0 (Continuous updates) |
Polityka zgodności | Snapshots releases along with MediaWiki. Master nie jest kompatybilny wstecznie. |
MediaWiki | 1.35+ |
PHP | 7.0+ |
Licencja | Licencja GNU General Public License 2.0 lub nowsza |
Pobieranie | |
|
|
|
|
Quarterly downloads | 54 (Ranked 82nd) |
Przetłumacz rozszerzenie TitleBlacklist jeżeli jest dostępne na translatewiki.net | |
Problemy | Otwarte zadania · Zgłoś błąd |
Rozszerzenie TitleBlacklist pozwala administratorom wiki blokować tworzenie, przenoszenie i przesyłanie stron, których tytuł strony pasuje do jednego lub kilku wyrażeń regularnych, jak również pozwala na blokowanie tworzenia kont z pasującymi do nich nazwami użytkownika.
Instalacja
- Pobierz i umieść plik(i) w katalogu o nazwie
TitleBlacklist
w folderzeextensions/
.
Developers and code contributors should install the extension from Git instead, using:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/TitleBlacklist - Dodaj poniższy kod na dole twojego pliku LocalSettings.php :
wfLoadExtension( 'TitleBlacklist' );
- Skonfiguruj źródła list zablokowanych (zobacz niżej)
- Zrobione – Przejdź do Special:Version na twojej wiki, aby sprawdzić czy rozszerzenie zostało pomyślnie zainstalowane.
$wgGroupPermissions['sysop']['tboverride'] = false;
.
Konfiguracja
$wgTitleBlacklistSources
- Array of title blacklist sources.
- Should be in array( name => source description ) format. Defaults to an empty array.
$wgTitleBlacklistUsernameSources
- Sets the sources which may work as a username filter.
- "
*
" is for all; false disables all. - If you want to limit it to particular sources, use array( source name 1, source name 2 ). This may be useful when you have shared account creation system in order to avoid blacklist fragmentation.
$wgTitleBlacklistLogHits
- When true, logs on Special:Log/titleblacklist all attempts of local account creation that match the blacklists. Defaults to
false
. Note that even disabled, the log will still be visible for users groups with thetitleblacklistlog
right. $wgTitleBlacklistCaching
- ?
$wgTitleBlacklistBlockAutoAccountCreation
- Blokuje również konta utworzone automatycznie, które pasują do czarnych list. Defaults to
true
.
- Multiple blacklist sources
The title blacklist can be gathered from multiple sources outside the local message. For configuring blacklist sources use code as described below:
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',
]
];
Zobacz task T113864, by uzyskać dalsze informacje.
Użycie
Blacklist
Lista bloków tytułowych znajduje się na stronie MediaWiki:Titleblacklist.
Ta strona składa się z regularnych wyrażeń, każdego w osobnej linii. Each of them forbids the creation of pages whose titles match it.
Każdy wpis może zawierać dodatkowe atrybuty, zamknięty w $1 i odseparowany za pomocą $2.
The list of attributes must be enclosed in <>
and separated with |
.
The possible attributes are:
autoconfirmed
- allow autoconfirmed users to bypass the restrictioncasesensitive
- only apply the restriction when the letter case exactly matches the entrynoedit
- also forbid edits to matching pages that already existmoveonly
- only forbid page moves to matching titles, allowing ordinary page creationsnewaccountonly
- only forbid matching account creations, allowing other actionsreupload
- allow uploading new versions of matching files that already existerrmsg=X
- when an action is prevented, display the error message with the nameX
instead of the standard message
If the AntiSpoof extension is installed, the antispoof
attribute can be used to normalize titles before checking them against the rules.
Na przykład:
Foo <autoconfirmed|noedit|errmsg=blacklisted-testpage> # This page name is not allowed [Bb]ar # No one should create article about it .*pandora.* # This word is not allowed in any part of a page name
What is referred to here as regular expressions are not proper regular expressions, but rather subpatterns that are inserted into a hard-coded regular expression. i.e. the subpattern Foo from above would create a regular expression like /^Foo$/usi.
Podkreślniki ("_
") w wyrażeniach regularnych zostaną zamienione przez to rozszerzenie na spacje, ponieważ nazwy stron są dopasowywane do jej poprawnej postaci („Nazwa strony” zamiast „Nazwa_strony”).
Bezpieczna lista
Istnieje również bezpieczna lista na stronie MediaWiki:Titlewhitelist.
Najpierw ma zastosowanie lista zablokowanych.
Wprowadzone przez użytkowników nazwy pasujące do czarnej listy są blokowane, chyba, że pasują do wpisu na białej liście.
Nie musisz niczego konfigurować w LocalSettings.php
, w celu wykorzystania białej listy.
Wiele z opcjonalnych atrybutów wypisano powyżej. Działają one tak samo dla białej listy, jak np. casesensitive.
Dostosowywanie
- Warning messages
Gdy próba utworzenia strony zostanie zablokowana z powodu umieszczenia tytułu na liście zablokowanych, użytkownikowi wyświetlany jest komunikat ostrzegawczy. Wyświetlana wiadomość może być zmieniona na tych stronach:
- MediaWiki:Titleblacklist-forbidden-edit — tworzenie stron i ich edycja,
- MediaWiki:Titleblacklist-forbidden-move — przenoszenie stron,
- MediaWiki:Titleblacklist-forbidden-upload — przesyłanie plików,
- MediaWiki:Titleblacklist-forbidden-new-account — nowe konta.
Niestandardowe nazwy komunikatów dla indywidualnych wpisów listy mogą być zdefiniowane przez użycie atrybutu errmsg
.
Używanie TitleBlacklist do kontrolowania tworzenia kont użytkowników
Koncept
The username for new accounts will be regarded by this extension differently to the way it regards new articles.
This extension will prepend "User:" (or its localized equivalent) to the string that a user enters at Username
on the create account page.
So when this extension is performing matches with your Regex's, as found on MediaWiki:Titleblacklist or MediaWiki:Titlewhitelist, it will match against "User:" + <userinput>.
For example, imagine you want to block "jill" as a new user. Imagine you had a blacklist regex "jill.* <newaccountonly>" and a user enters "jill" as the username on the create account page. This will pass as the comparison this extension will make will be between "jill.*" (the regex) and "User:jill" (the constructed input string). These don't match and so "jill" is allowed (and you probably didn't intend this). To effect the intended block use a regex like ".*jill.* <newaccountonly>" or "User:jill.* <newaccountonly>" on MediaWiki:Titleblacklist.
If you want to block all users except for all those that do match a regex then block all users in MediaWiki:Titleblacklist and write the permissible regex in the MediaWiki:Titlewhitelist.
Jak
If you would like to force all usernames, during account creation, to consist of exactly two names, space separated, with each name capitalized then do the following:
1. Zainstaluj TitleBlacklist.
2. Dodaj poniższy kod do swojego LocalSettings.php .
wfLoadExtension( 'TitleBlacklist' );
$wgGroupPermissions['sysop']['tboverride'] = false;
$wgTitleBlacklistSources = [
[
'type' => 'localpage',
'src' => 'MediaWiki:Titleblacklist'
]
];
3. In https://www.example.com/mywiki/MediaWiki:Titleblacklist add
# Block all user accounts, and only permit those that match the MediaWiki:Titlewhitelistregex
.* <newaccountonly>
4. In https://www.example.com/mywiki/MediaWiki:Titlewhitelist add
# Only allow two names, separated by a space, with each name capitalized, e.g. "Fred Mew" OK, "Fred mew" fails, "Fredmew" fails.
# Depends on .* <newaccountonly> in blacklist
User:[A-Z][a-z]+\s[A-Z][a-z]+ <casesensitive>
5. In https://www.example.com/mywiki/MediaWiki:Titleblacklist-forbidden-new-account edit
The user name "$2" has been blocked from creation. It matches the following blacklist entry: <code>$1</code>. Please use a real name for the user name. User names need to be comprised of two names separated by a space. Each name must be capitalized. E.g.: * "Mary Smith". OK. * "MarySmith". Invalid. * "Mary smith". Invalid. * "marysmith". Invalid.
Zasady blokowania tworzenia stron użytkownika i artykułów są kontrolowane przez MediaWiki:Titleblacklist i MediaWiki:Titlewhitelist. Wiadomość może zostać zmieniona na stronie MediaWiki:Titleblacklist-forbidden-new-account.
Testing for matches
The API module action=titleblacklist can be used to test a title and action (e.g. edit, create, new-account) against the blacklist.
Users with the 'tboverride' right should be sure to supply the tbnooverride
parameter.
For example, if the blacklist contained the filter:
.*(.)\1{10}.* <newaccountonly|errmsg=titleblacklist-forbidden-new-account-invalid> # Disallows eleven or more of the same character repeated in usernames
you could use an API request like
Wynik |
---|
{
"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}.* <newaccountonly|errmsg=titleblacklist-forbidden-new-account-invalid> # Disallows eleven or more of the same character repeated in usernames"
}
}
|
If Scribunto is installed, TitleBlacklist allows for testing if particular titles and actions will match an entry in the blacklist using the mw.ext.TitleBlacklist.test
function.
If a match is found, the details for the matched entry are returned.
Na przykład, jeśli lista zablokowanych zawierała filtr:
.*(.)\1{10}.* <newaccountonly|errmsg=titleblacklist-forbidden-new-account-invalid> # Disallows eleven or more of the same character repeated in usernames
uruchamiający funkcję:
mw.ext.TitleBlacklist.test("new-account", "AAAAAAAAAAA")
would return the following table containing details about the matched entry:
{
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> # Disallows eleven or more of the same character repeated in usernames",
regex = ".*(.)\1{10}.*",
version = 3
}
Clearing the cache
The contents of the blacklists are cached. Changes in blacklists configured at a URL or a file on the server are not applied immediately. To force clearing the cache, edit and save the page MediaWiki:Titleblacklist (even if you don't change anything). It doesn't matter if it's configured as a blacklist or not. Zobacz includes/Hooks.php.
Strony o wyrażeniach regularnych
- Brief Introduction to Regular Expressions
- The 30 Minute Regular Expression Tutorial
- PHP: PCRE regex syntax, the syntax of regular expressions used by PHP and therefore this extension
Zobacz też
- Zwalczanie spamu i wandalizmów
To rozszerzenie jest wykorzystywane przez jeden lub więcej projektów Wikimedia. Oznacza to prawdopodobnie, że to rozszerzenie jest stabilne i działa wystarczająco dobrze, aby wykorzystywać je na stronach o dużym natężeniu ruchu. Odnajdź nazwę tego rozszerzenia w plikach konfiguracyjnych Wikimedia CommonSettings.php oraz InitialiseSettings.php, aby zobaczyć gdzie są zainstalowane. Pełną listę rozszerzeń zainstalowanych na określonej wiki można znaleźć na stronie Special:Version na danej wiki. |
To rozszerzenie jest dołączone do następujących farm/hostów wiki lub pakietów: To nie jest pełna lista. Niektóre farmy/hosty wiki lub pakiety mogą zawierać to rozszerzenie nawet jeśli nie są one tutaj wymienione. Zawsze sprawdzaj swoje farmy/hosty wiki, aby to potwierdzić. |