Every non-private i.e. MediaWiki website are a common target for spammers promoting products and services by creating new user accounts and pages.
Recaptcha is most common solution used for reducing spams but it is not the best thing you can do, because now many types of spam bots can easily solve recaptcha, just like human beings and then start to create pages on your website.
Since System at SANGKRIT.net has now managed to stop MediaWiki spam completely, so it might be useful to let others know how it has managed this, what is the best type of captcha, what permissions and rights you should keep disabled on your wiki etc etc.
Among all other captcha and combating spam extensions out there, the best and most promising solution to stop MediaWiki spam is Questy Captcha.
It is not only easy to setup but also easy (for humans) to solve. There is no need of any external API to setup, it presents a question and the user supplies the answer. You can provide your own set of questions in LocalSettings.php file.
How To Setup QuestyCaptcha In MediaWiki?
QuestyCaptcha comes bundled in MediaWiki’s ConfirmEdit extension, so all you have to do is enable and configure it and then change default settings if needed for your wiki.
QuestyCaptcha is a module of ConfirmEdit extension so first thing you need to do is enable ConfirmEdit by adding following line in your MediaWiki’s LocalSettings.php file located in your site’s root directory.
require_once “$IP/extensions/ConfirmEdit/ConfirmEdit.php”;
Then, add following code to enable QuestyCaptcha module:
// Use this line ONLY if your MediaWiki version is 1.25 or newer: wfLoadExtension( ‘ConfirmEdit/QuestyCaptcha’ );
// Use this line ONLY if your MediaWiki version is older than 1.25: require_once “$IP/extensions/ConfirmEdit/QuestyCaptcha.php”; $wgCaptchaClass = ‘QuestyCaptcha’;
Now, you add your own specific questions in LocalSettings.php file using following code format:
// Add your questions in LocalSettings.php using this format
$wgCaptchaQuestions[] = array( ‘question’ => “A question?”, ‘answer’ => “An Answer”);
$wgCaptchaQuestions[] = array( ‘question’ => ‘How much wood would a woodchuck chuck if a woodchuck could chuck wood?’, ‘answer’ => ‘as much wood as…’ );
$wgCaptchaQuestions[] = array( ‘question’ => “What is this wiki’s name?”, ‘answer’ => “$wgSitename“ );
// You can also provide several acceptable answers to a given question (the answers shall be in lowercase):
$wgCaptchaQuestions[] = array( ‘question’ => “2 + 2 ?”, ‘answer’ => array( ‘4’, ‘four’ ) );
How QuestyCaptcha Works?
It randomly selects a question from those supplied and presents it on edit and create account pages, as textual questions can be read by text-to-speech software allowing visually impaired users (but not bots) to answer correctly.
This module has proven to offer a very strong mechanism against the flood of spam bots registrations on MediaWiki websites.