82b265c275ac44f83d5446875b5fc947e6647aea
[toast/cookiecaptcha.git] / CookieCaptcha.php
1 <?php
2 /**
3  * Experimental cookie-based captcha plugin.
4  *
5  * Copyright (C) 2005, 2006 Brion Vibber <brion@pobox.com>
6  * http://www.mediawiki.org/
7  * Copyright (C) 2012, Gregor Herrmann <gregor@toastfreeware.priv.at>, Philipp Spitzer <philipp@toastfreeware.priv.at>
8  * http://www.toastfreeware.priv.at/
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License along
21  * with this program; if not, write to the Free Software Foundation, Inc.,
22  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
23  * http://www.gnu.org/copyleft/gpl.html
24  *
25  * @file
26  * @ingroup Extensions
27  */
28
29 /* The idea of this "captcha" is to let the browser download an image that sets a cookie.
30 Research showed that spam bots don't load images. You have to setup the cookie e.g. in the apache2
31 configuration file. Here is an example where an image that's uploaded with mediawiki is used:
32
33 <Directory /var/www/mediawiki/images/d/d0>
34     <Files "MyImage.png">
35         Header append Set-Cookie "mediawiki_token=%t; Path=/; HttpOnly"
36         ExpiresActive On
37         ExpiresDefault "access plus 5 second"
38     </Files>
39 </Directory>
40 */
41
42
43 if ( !defined( 'MEDIAWIKI' ) ) {
44         exit;
45 }
46
47 $dir = __DIR__;
48 require_once $dir . '/ConfirmEdit.php';
49
50 $wgCaptchaClass = 'CookieCaptcha';
51 $wgCaptchaCookieName = 'mediawiki_token';                     // make it look "realistic". Idea: use $wgCookiePrefix . '_token'
52 $wgCaptchaCookieImage = '/mediawiki/images/d/d0/MyImage.png'; // You _have_ to specify an existing image
53 $wgCaptchaCookieAlt = '';                                     // alt attribute for the image
54 $wgCaptchaCookieStyle = 'display:none;';                      // CSS inline style applied to the image
55
56
57 $wgExtensionMessagesFiles['CookieCaptcha'] = $dir . '/CookieCaptcha.i18n.php';
58 $wgAutoloadClasses['CookieCaptcha'] = $dir . '/CookieCaptcha.class.php';