如何防止 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 = “//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 上面運作得還不錯,兩個禮拜了,到今天還沒發現有 spam 進來。

廣告

5 thoughts on “如何防止 Mediawiki 系統被 spam

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s