Extensão:TitleBlacklist

From mediawiki.org
This page is a translated version of the page Extension:TitleBlacklist and the translation is 15% complete.
Esta extensão acompanha o MediaWiki 1.21 ou superior. Logo, não é necessário baixá-la novamente. No entanto, ainda é necessário seguir as outras instruções fornecidas.
Manual de extensões do MediaWiki
TitleBlacklist
Estado da versão: estável
Implementação Direitos de usuário , API
Descrição Bloqueia a criação de páginas correspondentes a uma lista negra de expressões regulares.
Autor(es) Victor Vasiliev (VasilievVVdiscussão)
Última versão 1.5.0 (Continuous updates)
Política de
compatibilidade
Snapshots releases along with MediaWiki. Master is not backward compatible.
MediaWiki 1.35+
PHP 7.0+
Licença GNU GPL (Licença Pública Geral) 2.0 ou superior
Download
  • $wgTitleBlacklistSources
  • $wgTitleBlacklistUsernameSources
  • $wgTitleBlacklistCaching
  • $wgTitleBlacklistBlockAutoAccountCreation
  • $wgTitleBlacklistLogHits

  • tboverride
  • tboverride-account
  • titleblacklistlog
Quarterly downloads 49 (Ranked 100th)
Para traduzir a extensão TitleBlacklist, verifique sua disponibilidade no translatewiki.net
Problemas Tarefas em aberto · Relatar um bug
A proposal to rename this extension is discussed at tarefa T254650.

The TitleBlacklist extension allows wiki administrators to block the creation, movement and upload of pages, the title of which matches one or more regular expressions, as well as blocking creation of accounts with matching usernames.

Instalação

  • Baixe e coloque o(s) arquivo(s) num diretório chamado TitleBlacklist na sua pasta extensions/.
    Developers and code contributors should install the extension from Git instead, using:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/TitleBlacklist
  • Adicione o seguinte código ao final do seu arquivo LocalSettings.php :
    wfLoadExtension( 'TitleBlacklist' );
    
  • Configurar fontes de lista de bloqueio (veja abaixo)
  • Yes Concluído – Navegue à página Special:Version em sua wiki para verificar se a instalação da extensão foi bem sucedida.
By default it only affects non-sysop users. To make it default for all use $wgGroupPermissions['sysop']['tboverride'] = false;.

Configuration

$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 the titleblacklistlog right.
$wgTitleBlacklistCaching
?
$wgTitleBlacklistBlockAutoAccountCreation
Also blocks account created automatically that match the blacklists. Defaults to true.

Múltiplas fontes de lista de bloqueio

The title block list can be gathered from multiple sources outside the local message. For configuring block list 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',
    ]
];

See task T113864 for further information.

Usage

Block list

The title block list is found on the MediaWiki:Titleblacklist page.

This page consists of regular expressions, each on a separate line. Each of them forbids the creation of pages whose titles match it. For example:

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

Each entry may also contain optional attributes, enclosed in <> and separated with |.

  • autoconfirmed - also allows autoconfirmed users to perform such actions
  • casesensitive - do not ignore case when checking title for being put on the block list
  • noedit - also forbid editing the page (if it already exists)
  • moveonly - forbid moves but allow ordinary creation (rev:35163)
  • newaccountonly - forbid creation of matching usernames, but allow page creation (rev:38977)
  • reupload - allow reuploads of existing blocked files (rev:33656)
  • errmsg - the name of the message that should be displayed instead of standard

If the AntiSpoof extension is installed, you can also use the ‎<antispoof> attribute.

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.

Underscores ("_") in regular expressions will be converted to spaces by the extension, because titles are matched against its text form ("Page title" instead of "Page_title").

Lista segura

There is also a safe list at MediaWiki:Titlewhitelist. The block list is applied first, then the safe list. So user input that matches an entry on the block list is blocked, except if it matches an entry on the safe list. You don't have to configure anything in LocalSettings.php in order to use the safe list. Some of the optional attributes listed above, for the block list, also work for the safe list, e.g. casesensitive.

Personalização

Warning messages

When an attempt to create a page is blocked due to a title being listed on the block list, a warning message is shown to the user. This can be customized via following system messages defined in the namespace Mediawiki:

Custom messages can be defined by using the errmsg attribute.

Example: Using TitleBlacklist to control user account creation

Visão geral conceitual

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 block list 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.

How to

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. Instale a extensão TitleBlacklist.

2. Adicione o seguinte código no arquivo LocalSettings.php

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

3. Em https://www.example.com/mywiki/MediaWiki:Titleblacklist, adicione

# Block all user accounts, and only permit those that match the MediaWiki:Titlewhitelistregex 
.* <newaccountonly>

4. Em https://www.example.com/mywiki/MediaWiki:Titlewhitelist, adicione

# 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 block list
User:[A-Z][a-z]+\s[A-Z][a-z]+ <casesensitive>

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

The user name "$2" has been blocked from creation. It matches the following block list 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.

User name creation (and article creation) blocking rules are controlled by MediaWiki:Titleblacklist and MediaWiki:Titlewhitelist. This message can be customized at 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 block list. Users with the 'tboverride' right should be sure to supply the tbnooverride parameter.

For example, if the block list 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

Resultado
{
    "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 put on the block list]] 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"
    }
}

If Scribunto is installed, this extension allows for testing if particular titles and actions will match an entry in the block list using the mw.ext.TitleBlacklist.test function. If a match is found, the details for the matched entry are returned.

For example, if the block list contained the filter:

.*(.)\1{10}.* <newaccountonly|errmsg=titleblacklist-forbidden-new-account-invalid> # Disallows eleven or more of the same character repeated in usernames

running the function:

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 block lists are cached. Changes in block lists 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 block list or not. See includes/Hooks.php.

Recursos sobre expressões regulares

Ver também