Phabricator のプロジェクト名 #CheckUser

Extension:CheckUser

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Extension:CheckUser and the translation is 100% complete.

Other languages:
Deutsch • ‎English • ‎Nederlands • ‎dansk • ‎español • ‎français • ‎italiano • ‎magyar • ‎polski • ‎português do Brasil • ‎svenska • ‎русский • ‎فارسی • ‎বাংলা • ‎中文 • ‎日本語 • ‎한국어
MediaWiki 拡張機能マニュアル
OOjs UI icon advanced.svg
CheckUser
リリースの状態: 安定
CheckUser1.png
実装 Special page, User identity
説明 CheckUser機能を使用すると、権限を持つユーザーは、指定されたユーザー名で使用されているIPと、特定のIPで使用されているユーザー名を手動で照会する必要がなくなります。
作者 Tim Starling, Aaron Schulz
最新バージョン 2.4 (continuous updates)
互換性ポリシー リリースブランチ
MediaWiki 1.27+
PHP 5.4+
データベースの変更 はい
テーブル cu_changes
cu_log
ライセンス GNU General Public License 2.0 or later
ダウンロード
追加する権限
checkuser
checkuser-log
使用するフック
RecentChange_save
EmailUser
AuthPluginAutoCreate
ParserTestTables
LoadExtensionSchemaUpdates
ContributionsToolLinks
ArticleEditUpdatesDeleteFromRecentchanges
LoggableUserIPData
AddNewAccount
translatewiki.net で翻訳を利用できる場合は、CheckUser 拡張機能の翻訳にご協力ください
使用状況とバージョン マトリクスを確認してください。
問題点 未解決のタスク · バグを報告
このページは拡張機能そのものに関するものです。ウィキメディア財団のチェックユーザーのポリシーについては、m:チェックユーザーのポリシーを参照してください。

CheckUserは指定された利用者名で使用されているIPと、特定のIPで使用されている利用者名を確認する権限を特定の利用者に付与する拡張機能です。手作業でデータベースに対してクエリを直接実行する必要はありません。 この拡張機能は、WikimediaのすべてのWikiで実行されています。

ダウンロード

拡張機能は、Git から直接取得できる場合があります [?]:

  • コードを参照
  • 一部の拡張機能には安定版リリースのタグがあります。
    • タグを参照
    • タグを選択します
    • 「スナップショット」をクリックします
  • 各ブランチは過去の MediaWiki リリースと関連付けられています。 最新のアルファ バージョンを含む「master」ブランチもあります (MediaWiki のアルファ バージョンが必要な場合用)。

スナップショットを展開して、MediaWiki インストレーション内の extensions/CheckUser/ ディレクトリに配置します。

git に馴染みがあり、かつサーバーにシェルでアクセスできる場合は、拡張機能を以下のようにして取得することもできます:

cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/CheckUser.git

インストール

拡張機能は、GNU General Public License 2.0以降でリリースされています。 ソフトウェアは現状のまま提供されます。 ウィキメディアのウィキのニーズに合わせて、または重大な脆弱性が発見された場所が更新されます。

既存のwiki

基本

  • php maintenance/update.phpを実行せずに他の拡張機能をインストールした場合は、まずそれを実行してください。
  • ダウンロードして、ファイルを extensions/ フォルダー内の CheckUser という名前のディレクトリ内に配置します。
  • 以下のコードを LocalSettings.php の末尾に追加します:
    wfLoadExtension( 'CheckUser' );
    
  • MediaWiki 1.27 以前を稼働させている利用者へ:
PuTTYなどのtelnet/sshクライアントプログラムを使用して、extensions/CheckUserフォルダに移動してphp install.phpを実行します。 PHPバージョン5.xをインストールしていることを確認してください。そうしないと、このスクリプトは実行されません。 install.phpが存在しない場合は、php maintenance/update.phpを再度実行してください。 結果は次のようになります。
...cu_changes table added.
...doing rc_id from 368856 to 368955....
...
...cu_changes table added and populated.
...cu_log added
...logging disabled, skipping log import.
  • Yes 完了 – ウィキの「Special:Version」に移動して、拡張機能が正しくインストールされたことを確認します。

MediaWiki 1.24 以前を稼働させている利用者へ:

上記の手順では、wfLoadExtension() を使用してこの拡張機能をインストールする新しい方法を記載しています。 この拡張機能をこれらの過去のバージョン (MediaWiki 1.24 以前) にインストールする必要がある場合は、wfLoadExtension( 'CheckUser' ); の代わりに以下を使用する必要があります:

require_once "$IP/extensions/CheckUser/CheckUser.php";
コマンドプロンプトへのアクセスなしでのインストール

多くのホスティングプロバイダはシェルへの直接アクセスを許可していませんが、cronジョブの作成を許可しています(例:cPanel Webインターフェイス経由)。 これらのホスティングプロバイダのために、一時的なcronジョブをphp /path/to/install.phpを実行するために使用することができます(当然、/path/toはinstall.phpへの完全なフルパスで置き換えるべきです)。 もしリモートサーバを利用しコマンドプロンプトの使用権限がない場合 (あるいはcronジョブによる解決策が自分向きではないと判断する場合)で、phpMyAdmin利用のアクセス権限はある場合は、上記の手順#2の代わりに以下の手順に従います。

  1. cu_changes.sqlcu_log.sqlをダウンロードします
  2. phpMyAdminで、左側のmediawikiに使用しているデータベースをクリックします
  3. 次の画面で、上部にある「インポート」タブをクリックします。
  4. 「Location of the text file」(テキストファイルの位置) でファイルを1つ選択し、圧縮は「None」に設定してから一番下の「実行」ボタンをクリックします。
    もしご利用のphpMyAdmin画面にテキスト欄はあるのにテキストファイルの選択機能がない場合は、左欄のphpMyAdminロゴの下にある「SQL」ボタンを押して、新しく開いたウィンドウにある「import files」(ファイルをインポート) ボタンを押します。
  5. 2番目のファイルも同じ手順で処理します。

新しいウィキの場合

上記のステップ1に従い、その後、MediaWikiをインストールします。 MediaWikiインストーラでどの拡張期能を選ぶか尋ねられたとき、CheckUserをチェックすると自動でインストールを開始します。

設定

このツールは「最近の更新」のデータを別のcu_changesテーブルに移動し、新しい入力が追加されるたびに記入します。$wgPutIPinRC があらかじめfalseに設定してあると、検索対象のデータがない状態になり、拡張機能を設定したとたん、新規編集を取り込みます。

クエリの実行後、$wgRCMaxAge を減少するとcheckuserに影響を与えずにrecentchangesを短縮できます。checkuserデータが処理する深さを$wgCUDMaxAgeで指定しますが、単位は秒です。

MediaWiki 1.22以降ではCheckUser固有の設定$wgCheckUserCIDRLimitによって、1回の検証の最大範囲が決定します。書式は$wgBlockCIDRLimit と同等です。 さもなければ、(すべてのバージョンにおいて) 既定の制限はIPv6検証で /32、IPv4検証で /16になります。

Mozilla Firefoxを使用するチェックユーザは .js ファイルにこのJS scriptを追加してください。 するとIP WHOISデータの取得が簡単になります。 applets.codebase.principleサポート (about:config) を有効にする必要があります。 (Firefox 3 でsigned.applets.codebase_principle_support)

チェックユーザ権限の付与

チェックユーザ機能を利用する権限を付与するには、利用者権限管理の権限を有する利用者がSpecial:UserRightsにアクセスして記入欄に利用者名を入力、「利用者を確認」選択肢を選んでください。 この処理を行うと、当該の利用者の特別ページにチェックユーザのオプションが表示されます。

システム管理者向けに利用者権限管理を有効にするには、LocalSettings.phpに以下を追加します。

$wgGroupPermissions['sysop']['checkuser'] = true;
$wgGroupPermissions['sysop']['checkuser-log'] = true;

チェックユーザのパーミッションの追加と削除に限定するには、代わりに以下を使用します。

$wgAddGroups['sysop'][] = 'checkuser';
$wgRemoveGroups['sysop'][] = 'checkuser';

設定

CheckUser.phpの設定
パラメーター 既定値 コメント
$wgCUDMaxAge 7776000 CUデータを保存する時間(秒単位) (既定値=3ヶ月)
$wgCheckUserMaxBlocks 200 一括ブロックの制限
$wgCheckUserForceSummary false チェックユーザがチェックするたび「特別:チェックユーザ」に理由を書かせるには、これを true に設定します。 (チェックユーザには要約欄に単に「チェックが必要」あるいは「気が向いたから」など書くことができ、ソフトウェアには判断できないため、あまり実効性はありません。)
$wgCheckUserCIDRLimit [ 'IPv4' => 16, 'IPv6' => 32 ] CIDRの最短の制限で、個別の範囲チェックを検証できる制限。
$wgCUPublicKey 後で読み取りが必要になりそうな個人データを暗号化する公開キー。以下のように公開キーを生成します。

`openssl genrsa -out cu.key 2048; openssl rsa -in cu.key -pubout > cu.pub` 次にcu.pubの内容をここに貼り付けます

$wgCheckUserCAMultiLock false これを使うと「特別:CheckUser」の一括ブロックフォームへのリンクをCentralAuthによって「特別:MultiLock」に追加することができます。実行するにはウィキにCentralAuth拡張機能のインストールが必要です。そのためには、これを中枢のwikiのデータベース名がついた配列と、リンクの追加先になるグローバルグループ名がついた配列に設定します。例えば:
$wgCheckUserCAMultiLock = [
    'centralDB' => 'metawiki',
    'groups' => [ 'steward' ]
];
$wgCheckUserCAtoollink false 77360f1cf1d2以降。これにより中央のウィキの「特別:CentralAuth」に「特別:チェックユーザ」の「Get users」出力結果へのリンクを追加します。実行にはCentralAuth拡張機能をウィキにインストールする必要があります。そのために中枢のウィキのデータベース名を使って設定します。例えば:
$wgCheckUserCAtoollink = 'metawiki';
$wgCheckUserGBtoollink false 77360f1cf1d2以降。これによりローカルまたは中央管理ウィキの「特別:GlobalBlock」に「特別:チェックユーザー」の「利用者を取得」結果へのリンクを追加します。これを実行するにはGlobalBlocking拡張機能をウィキにインストールする必要があります。$wgConf を設定されている場合は、これを中枢のウィキのデータベース名の配列と、リンクの追加先になるローカル (もしくはCentralAuthがインストール済みならグローバル) グループ名。例は以下のとおりです。
$wgCheckUserGBtoollink = [
	'centralDB' => 'metawiki',
	'groups' => [ 'steward', 'staff' ]
];

使用法

基本のインターフェイス

  1. Special:CheckUserを開きます。
  2. user欄に利用者名 (「利用者:」部分は除外), IPアドレスまたはCIDR範囲を入力。
    • IP: IPv4またはIPv6のアドレス。
    • CIDR: IPアドレスの範囲を確認するには、CIDRプレフィックスを追加します (既定値は IPv4 (65,536 アドレス)が /16、revision 7352以前のIPv6 (~1.8446*1019 アドレス) が /64、IPv6 (~1.2089*1024 アドレスもしくはリビジョン7352以降の 65536 /64群 - 最新版では管理は$wgCheckUserCIDRLimitによる) 、/32 まで (65536 /48's) は /48。revision rECHU9d7c239bf88866eca577f3241194d440f94fa014). 表記は範囲ブロックのヘルプ Range Blocksを参照してください。
    • XFF: X-Forwarded-Forヘッダが提供するクライアントIPアドレスを知るには、/xffを追加 (例:127.0.0.1/xff).
  3. 取得したい情報を選択。
    • Get IPs: により登録利用者が使うIPアドレス群を取得。
    • Get edits from IP:によって特定のIPもしくはIP範囲からの利用者 (登録・秘匿の両方) による編集とログイン後の活動をすべて一覧にします。
    • Get users: 特定のIPもしくはIP範囲から編集を実行した利用者アカウント群を返します。
  4. reason 欄には、秘密のデータにアクセスした理由を記入します。状況をなるべく簡潔(たとえば「クロスウィキスパム」)に要約してください。 これは、checkuser-log許可を持つユーザーのみ閲覧できるログに記録されます。

情報の戻り値

CheckUserのエントリから引き出される利用者サマリの結果 ("get users") は以下のとおりです。

  • Example (Talk | contribs) (20:11, 16 4月 2019 -- 20:12, 16 4月 2019) [5]
    1. 127.0.0.37 XFF: 127.0.0.1, 127.0.0.5

これは特定の書式に大量の情報を盛り込むための書式で、リスト化や読み流しが非常に簡単にできるものの、提供された情報が何かを知らない限り、読むのは困難です。情報の配置は次のとおりです。

  • 利用者名 (利用者リンク群) (特定のIPもしくはIP範囲から編集を行った期間) [特定のIPもしくはIP範囲から実行された編集の回数]
    1. 編集を行ったIPアドレス XFF: 提供されたXFF情報 (なりすましは可能)

編集に使用したIP/XFF組み合わせごとに、使用順に一覧にしてあります。

特定のIPもしくはIP範囲から編集した最近の利用者ごとのUA10件 (ブラウザ、OS、システム言語、バージョン) のリストが続きます。

XFF フォーマット

XFF (X-Forwarded-For) ヘッダにより、利用者のコンピュータ (1番目) が使用した一連のIPアドレス群から最終プロキシサーバまで表示されます。ウィキメディアの場合、最近のプロキシサーバとはウィキメディアのプロキシ群のどれかに該当します (Wikimedia configuration file内の$wgSquidServersNoPurge に表示。)

このサンプルの場合:

aaa.aaa.aaa.aaa XFF: 10.4.46.42, 127.0.0.1, aaa.aaa.aaa.aaa, 208.80.152.46

  • 最初のアドレス2件 (10.4.46.42, 127.0.0.1) は発信元ネットワークに秘匿され、パブリックインターネットからの直接アクセスはできません。
  • 3番目のアドレス (aaa.aaa.aaa.aaa) は編集者の「一般公開」であり、通常はブロードバンドまたはダイアルアップISP、企業のゲートウェイ (ただしアノニマイザまたはマルウェアに感染したサーバ) を示します。
  • 最後のアドレス (208.80.152.46) はウィキメディアのスクイッド (sq36.wikimedia.org) の1つです。

MediaWiki 環境設定の$wgUsePrivateIPs $wgSquidServers $wgSquidServersNoPurge IsTrustedProxyフック (Extension:TrustedXFFなど)を使用する拡張機能は、編集を行った実際のIPアドレスの選択方法を変更させます。

個人的ツールのリンク

「特別:CheckUser」から結果を入手したら、個人的なユーザツールを追加するには以下のインターフェースメッセージ2つが使えます。

エラー メッセージ

データベース・クエリの構文エラー

ページを保存しようとして、以下のようなエラーメッセージが表示された場合。

データベースクエリの構文エラーが発生しました。これはソフトウェアのバグを指摘している場合があります。最近実行しようとしたデータベースクエリは以下のとおりです。

(SQLクエリは非表示)

「efUpdateCheckUserData」機能の内部要因が原因です。データベースはエラーメッセージ「1146: 'cu_changes'テーブルは存在しません (localhost)」を返します。

これはCheckUserの正しいインストールに失敗したことを指しています。この場合は、データベースに必要なcu_changesテーブルの作成を忘れたという意味です。

API

CheckUserはAPIも提供します。

api.php?action=query&list=checkuser&curequest=userips&cutarget=Jimbo_Wales
api.php?action=query&list=checkuser&curequest=edits&cutarget=127.0.0.1/16&xff=1&cureason=Some_check
api.php?action=query&list=checkuserlog&culuser=WikiSysop&cullimit=25
api.php?action=query&list=checkuserlog&cultarget=127.0.0.1&culfrom=20111015230000