Extension:TitleBlacklist
TitleBlacklist リリースの状態: 安定 |
|
---|---|
実装 | 利用者権限 , API |
説明 | 正規表現ブラックリストにマッチしたページ名のページの作成を阻止します。 |
作者 | Victor Vasiliev (VasilievVVトーク) |
最新バージョン | 1.5.0 (継続的な更新) |
互換性の方針 | MediaWiki とともにリリースされるスナップショット。 master には後方互換性がありません。 |
MediaWiki | 1.35+ |
PHP | 7.0+ |
ライセンス | GNU 一般公衆利用許諾書 2.0 以降 |
ダウンロード | |
|
|
|
|
四半期ごとのダウンロード数 | 53 (Ranked 77th) |
translatewiki.net で翻訳を利用できる場合は、TitleBlacklist 拡張機能の翻訳にご協力ください | |
問題点 | 未解決のタスク · バグを報告 |
TitleBlacklist拡張機能は、Wikiの管理者がRegular expressionに一致するタイトルのページの作成・移動・アップロードをブロックすること、およびRegular expressionに一致する利用者名を持つアカウントの作成をブロックすることを可能にします。
インストール
- ダウンロードして、ファイルを
extensions/
フォルダー内のTitleBlacklist
という名前のディレクトリ内に配置します。
開発者とコード寄稿者は、上記の代わりに以下を使用してGitからインストールします:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/TitleBlacklist - 以下のコードを LocalSettings.php ファイルの末尾に追加します:
wfLoadExtension( 'TitleBlacklist' );
- ブロック リスト ソースを設定します(下記を参照)
- 完了 – ウィキの「Special:Version」に移動して、拡張機能が正しくインストールされたことを確認します。
$wgGroupPermissions['sysop']['tboverride'] = false;
を使用します。
設定
$wgTitleBlacklistSources
- タイトルブラックリストのソースの書き方。
- 配列形式( name => source description )でなければならない。 既定は空の配列です。
$wgTitleBlacklistUsernameSources
- 利用者名にかけるフィルターとして動作するソースの設定。
- "
*
" is for all; false disables all. - 特定のソースに限定したい場合、配列( source name 1, source name 2 )を書きます。 ブラックリストが断片化するのを防ぐために共有アカウントの作成システムを導入している場合に便利かもしれません。
$wgTitleBlacklistLogHits
- trueだった場合、ブラックリストに一致するローカルのアカウント作成の操作のすべてをSpecial:Log/titleblacklistに記録します。 既定値は
false
.です Note that even disabled, the log will still be visible for users groups with thetitleblacklistlog
right. $wgTitleBlacklistCaching
- ?
$wgTitleBlacklistBlockAutoAccountCreation
- また、自動的にソフトウェア側で作成されたブラックリストに一致するアカウントもブロックされます。 既定値は
true
.です
- 複数のソース
タイトルブロックリストは、ローカルメッセージ以外の複数のソースから収集することが可能です。ブロックリストのソースを設定するには、以下のコードを使用してください。
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',
]
];
詳細は タスク T113864 を参照してください。
使用法
ブロックリスト
ページ名ブロック リストは MediaWiki:Titleblacklist のページにあります。
このページはそれぞれの個別の行ごとに正規表現で構成されます。 Each of them forbids the creation of pages whose titles match it.
Each entry may also contain one or more attributes.
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.
例:
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
ここで「正規表現」として説明しているものは正式な正規表現ではなく、ハードコードされた正規表現パターンに挿入するためのサブパターンです。例えば、上記の例にある Foo は /^Foo$/usi のような正規表現になります。
正規表現にアンダースコア (_
) が含まれる場合、拡張機能により自動的にスペースに変換されます。これはタイトルの検査がテキスト形式("Page_title"ではなく、"Page title"の形)で行われるためです。
ホワイトリスト
MediaWiki:Titlewhitelist というホワイトリストもあります。
順番としてはまずブラックリストが、続いてホワイトリストが適用されます。
したがって、ブラックリストの正規表現に合致し、ホワイトリストの正規表現に合致しない入力はブロックされます。
なお、ホワイトリストの使用にあたって LocalSettings.php
を変更する必要はありません。
上記ブラックリスト向けの属性の一部(casesensitiveなど)はホワイトリストでも使用できます。
カスタマイズ
- 警告メッセージ
When an attempt to create a page is blocked due to a blacklisted title, a warning message is shown to the user. This can be customized via following system messages defined in the namespace Mediawiki:
- MediaWiki:Titleblacklist-forbidden-edit — for page creation and editing,
- MediaWiki:Titleblacklist-forbidden-move — for page moves,
- MediaWiki:Titleblacklist-forbidden-upload — for image uploads,
- MediaWiki:Titleblacklist-forbidden-new-account — for new accounts.
カスタム メッセージは errmsg
属性を使用して定義できます。
例 : タイトルブラックリストを使用してアカウントの作成を制御する
概要
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.
使用法
アカウント作成時に、すべての利用者名をスペースで区切り、それぞれの名前を大文字にして必ず2つの名前で構成されるよう強制したい場合、次のようにしてください :
1. TitleBlackListをインストールします。
2. 以下を LocalSettings.php に追加します
wfLoadExtension( 'TitleBlacklist' );
$wgGroupPermissions['sysop']['tboverride'] = false;
$wgTitleBlacklistSources = [
[
'type' => 'localpage',
'src' => 'MediaWiki:Titleblacklist'
]
];
3. https://www.example.com/mywiki/MediaWiki:Titleblacklistに追加
# Block all user accounts, and only permit those that match the MediaWiki:Titlewhitelistregex
.* <newaccountonly>
4. https://www.example.com/mywiki/MediaWiki:Titlewhitelistに追加
# 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. 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.
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.
一致するかテスト
The API module action=titleblacklist can be used to test a title and action (e.g. edit, create, new-account) against the blacklist.
'tboverride' の権限がある利用者は、tbnooverride
パラメーターの指定が必須になります。
ブロックリストにフィルターをかける 例 :
.*(.)\1{10}.* <newaccountonly|errmsg=titleblacklist-forbidden-new-account-invalid> # Disallows eleven or more of the same character repeated in usernames
APIを使用することができます
結果 |
---|
{
"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.
一致するエントリが見つかった場合、そのエントリの詳細情報が返ります。
ブロックリストにフィルターをかける 例 :
.*(.)\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")
マッチしたエントリの詳細が含まれる以下の表を返します :
{
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. includes/Hooks.php を参照してください。
Resources on regular expressions
- 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
関連項目
この拡張機能は 1 つ以上のウィキメディアのプロジェクトで使用されています。 これはおそらく、この拡張機能が安定していて高いトラフィックのウェブサイトでも十分に動作することを意味します。 この拡張機能がインストールされている場所を確認するには、ウィキメディアの設定ファイル CommonSettings.php および InitialiseSettings.php 内で、この拡張機能の名前を探してください。 特定のウィキにインストールされている拡張機能の完全な一覧は、そのウィキの Special:Version ページにあります。 |
この拡張機能は以下のウィキ ファーム/ウィキ ホスト/パッケージに含まれています: これは正式な一覧ではありません。 一部のウィキ ファーム/ウィキ ホスト/パッケージは、ここに記載されていなくてもこの拡張機能を含んでいる場合があります。 必ずご利用のウィキ ファーム、ウィキ ホスト、バンドルで確認してください。 |