Mediawiki

如何防止 Mediawiki 系統被 spam 的方法

以下列出如何防止 Mediawiki 系統被 spam 的方法。

1. 更新 Mediawiki 系統至最新版。

註:新版 Mediawiki 需 php 5 版本以上的作業環境才可以運作,一般虛擬主機還是有些是採用 php 4 版本,若強制使用 php4 會遇到錯誤而導致無法 Mediawiki 無法升級或安裝。大部分的虛擬主機都可以改用 php 5 版本,可以在系統根目錄下,在 .htaccess 檔案(沒有此檔可以自行建立)中增加:

AddHandler application/x-httpd-php5 .php5 .php4 .php .php3 .php2 .phtml

AddType application/x-httpd-php5 .php5 .php4 .php .php3 .php2 .phtml

這兩行。就可以讓虛擬主機改用 php 5.

另外,編輯根目錄中的 php.ini 檔,如果下面這行 register_globals 參數的預設值為 On,要改為Off,如:

register_globals = Off

改了 .htaccess 與 php.ini 這兩個檔之後,就可以開始升級或安裝 Mediawiki。

2. 安裝擴展元件 SpamBlacklist

下載SpamBlacklist extension,並上傳到extensions目錄下,並且在LocalSettings.php,插入以下幾行:

require_once( "$IP/extensions/SpamBlacklist/SpamBlacklist.php" );

$wgSpamBlacklistFiles = array(

// database title

"DB: wikidb My_spam_blacklist",

);

然後從Spam blacklist複製名單,把全部的名單代碼貼到My spam blacklist 這個Wiki頁面,此頁面請自行於自己的 Mediawiki 系統上建立。 (此安裝法參考planetoid: 與Wiki Spam bot奮戰)

3. 安裝 Bad Behavior 擴展元件。

這個方法我嘗試失敗,這個擴展元件我安裝起來都有錯誤訊息。

4. 限制只有註冊用戶可編輯MediaWiki

修改Mediawiki 中的 LocalSettings.php,插入以下這行,要求使用者必須登錄帳號後,才能進行編輯:

$wgWhitelistEdit = true;

這行在 1.5 版之後失效。必需改使用以下這行:

$wgGroupPermissions['*' ]['edit'] = false;

來限制之。在這裏有提到。也請參考 Mediawiki 關於權限的設定整理大全。另外,也可以看這個中文頁面的說明

5. 設定 LocalSettings.php 中的 $wgSpamRegex 參數,以防止 CSS Hidden Spam

加以入下這行:

$wgSpamRegex = "/\<.*style.*?(display|position|overflow|visibility|height)\s*:.*?>/i";

6. 安裝 ReCAPTCHA 擴展元件

依照ReCAPTCHA網站的指示,安裝好之後,在其網站申請一個帳號,ReCAPTCHA 官網會給你兩個 key,一個是公鑰,一個是私鑰,把兩個鑰匙填入以下兩個參數(兩個單引號)中:

$recaptcha_public_key = '';

$recaptcha_private_key = '';

7. Proxy Blocking

編輯 LocalSettings.php ,加入此行:

$wgEnableSorbs = true;

即可。

(請參考此頁。)

8. 編輯 LocalSettings.php 裏面 $wgSpamRegex 的設定:

請加入:

$wgSpamRegex = "/online-casino|buy-viagra|adipex|phentermine|adult-website\.com|display:none|overflow:\s*auto;\s*height:\s*[0-4]px;/i";

(參考自: http://meta.wikimedia.org/wiki/Anti-spam_Features)

這些方法綜合起來用,目前在 TESOL Taiwan Wiki 上面運作得還不錯。

reCaptcha

有安裝 reCaptcha 這個擴展元件給 Mediawiki 系統的人,若您的系統上,使用英文和中文的人都很多的話,可以把這個中文化的檔案 copy 回去,改名為 ReCaptcha.i18n.php ,然後再覆蓋在檔案上,即可讓您的系統在出現 reCaptcha 對話框的時候,能同時有中、英文說明出現。

這個檔案是我修改的,因為原檔案只有英語說明,我加上了很詳細的說明,期望讓圍紀使用者能少遇到問題,對於這個檔案有問題的話可以找我。

* 請按這裏下載這個檔案。

====================

If you have installed the reCaptcha extension for your Mediawiki system, you can also download this file to have both English and Chinese messages for your wiki users when the reCaptcha dialog box is shown.

Please download the file, rename it as "ReCaptcha.i18n.php", and then replace the original file with the new one via ftp.

* Click here to download.