Extension:TitleBlacklist

This page is a translated version of the page Extension:TitleBlacklist and the translation is 28% complete.
Outdated translations are marked like this.
Other languages:
Deutsch • ‎English • ‎Tiếng Việt • ‎español • ‎français • ‎polski • ‎português do Brasil • ‎čeština • ‎беларуская (тарашкевіца)‎ • ‎हिन्दी • ‎中文 • ‎日本語 • ‎한국어
この拡張機能は MediaWiki 1.21 以降に同梱されています。 そのため再度ダウンロードする必要はありません。 しかし、提供されているその他の手順に従う必要はあります。
MediaWiki 拡張機能マニュアル
OOjs UI icon advanced.svg
TitleBlacklist
リリースの状態: 安定
TitleBlacklist demonstration.png
実装 利用者権限 , API
説明 Blocks the creation of pages matching a regular expression blacklist
作者 Victor Vasiliev (VasilievVVtalk)
最新バージョン 1.5.0 (Continuous updates)
互換性ポリシー リリースブランチ
MediaWiki 1.35+
PHP 7.0+
ライセンス GNU 一般公衆利用許諾書 2.0 以降
ダウンロード
  • $wgTitleBlacklistSources
  • $wgTitleBlacklistUsernameSources
  • $wgTitleBlacklistCaching
  • $wgTitleBlacklistBlockAutoAccountCreation
  • $wgTitleBlacklistLogHits
  • tboverride
  • tboverride-account
  • titleblacklistlog
translatewiki.net で翻訳を利用できる場合は、TitleBlacklist 拡張機能の翻訳にご協力ください
使用状況とバージョン マトリクスを確認してください。
問題点 未解決のタスク · バグを報告

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.

インストール

  • ダウンロードして、ファイルを extensions/ フォルダー内の TitleBlacklist という名前のディレクトリ内に配置します。
  • 以下のコードを LocalSettings.php の末尾に追加します:
    wfLoadExtension( 'TitleBlacklist' );
    
  • ブラックリストソースを設定します(下記を参照)
  •   完了 – ウィキの「Special:Version」に移動して、拡張機能が正しくインストールされたことを確認します。
By default it only affects non-sysop users. To make it default for all use $wgGroupPermissions['sysop']['tboverride'] = false;.

設定

$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.

Multiple block list sources

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 issue T113864 for further information.

使用法

ブラックリスト

タイトルブラックリストはMediaWiki:Titleblacklistのページに保存されています。

このページはそれぞれの個別の行ごとに正規表現で構成されます。例:

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

それぞれのエントリは <> で閉じられ、| で分割されたオプションの属性を含むことができます。

  • autoconfirmed - 自動承認された利用者にのみ操作を許可します
  • casesensitive - ブラックリストに掲載されたタイトルを確認するときに大文字小文字の区別をする
  • noedit - 利用者はこの記事を編集できません
  • moveonly - 作成はできますが、移動はできません (rev:35163)
  • newaccountonly - マッチする利用者名でアカウントを作成することはできませんが、ページの作成はできます (rev:38977)
  • reupload - ブラックリストに掲載されたファイルの再アップロードを許可 (rev:33656)
  • errmsg - 標準のものの代わりに表示されるメッセージの名前です

AntiSpoof 拡張機能がインストールされている場合、属性 <antispoof> を使用することができます。

ここで「正規表現」として説明しているものは正式な正規表現ではなく、ハードコードされた正規表現パターンに挿入するためのサブパターンです。例えば、上記の例にあるFoo/^Foo$/usiのような正規表現になります。

正規表現にアンダースコア("_")が含まれる場合、拡張機能により自動的にスペースに変換されます。これはタイトルの検査がテキスト形式("Page_title"ではなく、"Page title"の形)で行われるためです。

ホワイトリスト

MediaWiki:Titlewhitelistというホワイトリストもあります。順番としてはまずブラックリストが、続いてホワイトリストが適用されます。したがって、ブラックリストの正規表現に合致し、ホワイトリストの正規表現に合致しない入力はブロックされます。なお、ホワイトリストの使用にあたってLocalSettings.phpを変更する必要はありません。上記ブラックリスト向けの属性の一部(casesensitiveなど)はホワイトリストでも使用できます。

カスタマイズ

警告メッセージ

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 system messages

カスタムメッセージは errmsg属性を使用して定義できます。

Example: Using TitleBlacklist to control user account creation

Conceptual overview

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. TitleBlackListをインストールします。

2. 以下を 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 block list
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 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

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
}

Resources on regular expressions

関連項目