MediaWiki のスパム対策

Published: 2016-02-04 09:03 +0900 by Chirimen

MediaWiki にスパムがきたので対策メモ

概要

管理してる MediaWiki のページをちょっと目を離していたら スパムがいっぱいきてた。 大量にアカウント登録して新規ページをいっぱい作成している。

とりあえずすぐできそうな対策から実行してみる。

Captcha の導入

いくつかの Captcha が標準で使用できて、 中でも QuestyCaptcha有効らしい。

require_once "$IP/extensions/ConfirmEdit/ConfirmEdit.php";
wfLoadExtension('ConfirmEdit/QuestyCaptcha');
$wgCaptchaClass = 'QuestyCaptcha';
$wgCaptchaQuestions[] = array( 'question' => "指定の問い", 'answer' => "対応する答え");
$wgCaptchaTriggers['edit'] = true;
$wgCaptchaTriggers['create'] = true;
$wgGroupPermissions['sysop']['skipcaptcha'] = false;

配列 $wgCapthaQuestion で問いと答えのペアを登録する。 複数の指定が可能。日本語もOK。

$wgCaptchaTriggers['edit'] = true はページ編集時に Captcha を有効にする設定。 同じく $wgCaptchaTriggers['create'] = true はページ作成時。

$wgGroupPermissions['sysop']['skipcaptcha'] = false; は sysop グループに対しても Captcha を要求する設定。

UserMerge の導入

大量に登録されてしまった Spammer だけど、 MediaWiki ではユーザの削除は基本的にできないらしい。

代わりにユーザーを統合する拡張があるので Spammer は 全部 Spammer というユーザに統合しておこう。

require_once "$IP/extensions/UserMerge/UserMerge.php";
$wgGroupPermissions['bureaucrat']['usermerge'] = true;

作業は一人ずつ手作業で統合していくので結構めんどうくさい。

参考

Share

Latest Posts

Django Rest Framework のテストでハマったこと (4)

Django で既存データベースから inspectdb で作成した models.my は managed = False となっている。 そのままだと test を実行したときに、 テスト用データベースにモデルに対応したテーブルが作成されない。

Django Rest Framework のテストでハマったこと (3)

factory_boy の Faker() で、 取得した値を加工してから使用する話。

Django Rest Framework のテストでハマったこと (2)

Django のテスト用データを作成するのによく用いられる factory_boy で locale を指定して日本語圏用のデータを利用する話。