allwiki首页  
天下维客 你可以修改的网络知识库
首页最近更改优秀条目专题展示电脑科技词典软件学习网络知识电脑安全明星时尚天下百科
 

MediaWiki扩展:SpamBlacklist

天下维客,你可以修改的网络知识库

Jump to: navigation, search
MediaWiki扩展简明教程 Inputbox帮助文档 使用Spam黑名单 内容折叠隐藏 动态文章列表 指定图片链接
代码高亮处理 预置初始编辑文本 页面访问限制 所见即所得编辑器 QQ在线信息
交流:扩展使用 投票与评分 内容随机展示 wikitex 改进设想 ...更多
加入google地图和51地图标注功能 Ajax五颗星评分插件

SpamBlacklist是一个mediawiki扩展程序,用于防范在wiki文章内反复粘贴广告网址(即spam行为)。当有人试图保存页面时,本扩展将对“http://...”形式的外部链接进行检查,若链接中包含限制信息则拒绝保存页面并进行提示。

本扩展程序所使用的网址黑名单中可包含非常大量的网址。使用本扩展可以大大提高mediawikispam行为的控制能力。(然而,本扩展属于需要人工及时发现新的spam网址并加入黑名单,不能自动对新出现的网址进行事先防范)。

使用本扩展主要包括3个步骤:

  • 下载并安装mediawiki的SpamBlacklist扩展程序
  • 对SpamBlacklist进行配置
  • 建立自己的网址黑名单和白名单

目录

安装SpamBlacklist

本程序适用于mediawiki 1.6及更高版本(详见软件包所附的README文件)。请按下述方法为mediawiki增加本功能

SpamBlacklist下载

首先,下载SpamBlacklist文件并上传到你的Mediawiki系统extensions/SpamBlacklist目录下(需要手动建立这个目录)。在SpamBlacklist目录下至少包括两个文件:

  • SpamBlacklist.php
  • SpamBlacklist_body.php

有时 如果安装后出现页面空白的情况,请下载所有相关文件,并上传即可。

下载资源:

将SpamBlacklist加入系统

之后,在LocalSettings.php的后部增加下面一行:(如有疑问请参见LocalSettings的修改方法

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

无需其他操作,过滤器即可工作。($IP为localsettings中的一个变量,不必理会)


SpamBlacklist的网址黑名单操作

经过上述操作,SpamBlacklist插件已经可以工作。为了更方便使用和维护,本插件提供了三种黑名单的指定方式,可根据需要自行设置。

默认情况下,元维基的Blacklist页面(spam黑名单)将被下载并作为内容检查的依据。

出于方便管理和运行效率的考虑,天下维客站长建议大家:采用mediawiki站内文章方式建立黑名单。

恶意网址列表的指定方式

网址黑名单通过$wgSpamBlacklistFiles变量来指定。这是一个数组,取值可以是以下内容之一:URL(外站黑名单的网址) 或 文件名(服务器文件) 或 数据库位置(wiki页面)指定。分述如下:

方式一:网址方式指定外部网站Spam黑名单
外部公有资源,可分享其他网站的防范Spam的大量成果。这些资源将被10-15分钟抓取一次,作为最新的防范依据。本文后面的参考资料中给出了部分资源。
资源的更新通过插件中名为update的cron(定时自动执行)脚本来完成。如果你使用了memcached,则必须删除spam_blacklist_regexes key (比如,可以使用maintenance/mcc.php来完成)。
方式二:本站wiki页面方式
站内管理比较灵活,方便多个管理员同时维护。其指定格式为:"DB: <数据库名称> <文章名称>"。其中,<数据库名称>要与LocalSettings.php中的$wgDBname变量值完全一致。(数据库名称已经记录在LocalSettings.php中的$wgDBname变量中,可自行查找)
还有,你需要在wiki中建立用<文章名称>作为标题的页面,并编辑保存过滤规则文本。强烈建议保护该页面,以防止该列表被蓄意破坏。 (否则,在技术上有潜在危险,如:①通过输入一个匹配所有字串的表达式而导致网站无法编辑;②正则表达式片段还可能导致PCRE的Segmentation fault攻击手段)
方式三:放置在服务器上的黑名单文件
效率最高,但不方便维护

你可以选择其中一种或几种方式,指定多个方式时过滤规则会综合起来起作用。最常见的是单独采用使用站内wiki页面。

注意:一旦在LocalSettings.php指定了$wpSpamBlacklistFiles数组的内容,将不再执行默认获取元维基网址黑名单的动作(因为默认设置被覆盖)。因此,需要的话请在自己的设置中写上元维基的Blacklist页面(spam黑名单)资源。


示例:

require_once( "$IP/extensions/SpamBlacklist/SpamBlacklist.php" );
$wgSpamBlacklistFiles = array(
	"DB: wikidb allwiki:spam_blacklist",		#站内页面指定
	"$IP/extensions/SpamBlacklist/my_blacklist_file",	#文件指定
	"http://meta.wikimedia.org/w/index.php?title=Spam_blacklist&action=raw&sb_ver=1"	#外部网址指定
	);

在上面的例子中,网址黑名单将同时使用三个来源。一、名为allwiki:spam_blacklist的wiki页面被调用;二、网站服务器SpamBlacklist目录下一个名为my_blacklist_file的文件被调用;三、元维基的黑名单列表被调用。

再给出一个实例(www.allwiki.com的实际代码段):

require_once( "$IP/extensions/SpamBlacklist/SpamBlacklist.php" );
$wgSpamBlacklistFiles = array(
	"DB: **** allwiki:spam_blacklist",		#站内页面指定。****为数据库名称,这里加了马赛克
	);

黑名单的文本格式

请参考天下维客的黑名单列表

简而言之:

  • "#"之后至行尾的所有内容被当作注释,不起作用
  • 所有非空行都是一个正则表达式的片段,这仅对wiki文本的URL(网址)部分进行匹配。

正则表达式的形式如下:

!http://[a-z0-9\-.]*(line 1|line 2|line 3|....)!Si

关于正则表达式的部分说明:

  • 不需要在网址名称之前增加写上www,扩展能够匹配所有的子域名字串
  • 注意不要让匹配模式字串跑飞,例如包含".*"的字串
  • 模式匹配符"^"和"$"并不是指网址的开始和结尾,而是指文章的开始/结尾。

实例:

#下面一行禁止网址中含有指定字串,域名、子目录名、文件名都将被检查。
huoluodai
#下面一行禁止指定域名“dinmo.cn”,注意“\.”的用法。不必包含“http://”和“www.”字样
dinmo\.cn

网址白名单(Whitelist)

使用其他网站的黑名单时,有时需要放开其中某些不适切的封锁。因此,本扩展维护了一个白名单来完成这个目的。白名单通过对MediaWiki:Spam-whitelist信息的编辑来维护(在搜索框中输入“MediaWiki:Spam-whitelist”并回车即可编辑本页面。需要管理员权限。另外参见Special:Allmessages页面)。

如无需求,可忽略本操作。

性能、稳定性、版权等

这个扩展使用了一个小的"loader"文件,以避免每次页面浏览时加载所有代码。这意味着页面浏览性能不收任何影响,即便没有运行Turck MMCache之类的缓冲也没关系(当然,mediawiki系统强烈建议使用缓冲机制以提高效率)。

至于正则表达式的匹配,则会在页面保存时增加些微开销(经验数值在100ms量级)。但是,从磁盘/数据库加载spam文件,构建正则表达式,会有比较显著的开销,这根硬件环境也有关。如果打开这个扩展后显著降低了保存性能,请尝试安装MemCached或其他数据缓存措施,这样SpamBlacklist扩展将会缓存构建好的正则表达式。


Spamblacklist从2004年12月就开始在Wikimedia网站上运作,至今已有大量网站采用它,因此稳定性不存在什么问题。但同时,本设计极为简单,只对输入内容做了非常有限的规范性验证,因此,正则表达式错误或非标准设置可能导致不可预料的运行结果。

本扩展及文档由Tim Starling撰写,版权不详。参见程序文件的内部说明。

参考资料

可供利用的网址黑名单资源
wiki spam相关网址


MediaWiki扩展简明教程 Inputbox帮助文档 使用Spam黑名单 内容折叠隐藏 动态文章列表 指定图片链接
代码高亮处理 预置初始编辑文本 页面访问限制 所见即所得编辑器 QQ在线信息
交流:扩展使用 投票与评分 内容随机展示 wikitex 改进设想 ...更多
加入google地图和51地图标注功能 Ajax五颗星评分插件
mediawiki图标

MediaWiki是全球最著名和最流行的开源wiki程序,运行于PHP+MySQL环境。MediaWiki从2002年2月25日被维基百科全书选用,并有大量其他应用实例。

MediaWiki功能齐备,中文支持良好,且学习资源丰富,是建立wiki网站的首选后台程序。目前国内的天下维客等站点都采用这套系统。

MediaWiki的开发得到维基媒体基金会的支持,一直保值着持续更新。目前最新版本为1.12.x。

mediawiki知识


mediawiki建站

mediawiki资源

国外站需代理访问

→ 更多mediawiki资料  相关资源:wiki知识 wiki文摘  QQ群:22134343 / 3680101-wiki建站与应用 5903157-电脑使用

Personal tools
工具
金银币拍卖 金币拍卖预展  金银币网店 熊猫金银币 生肖金银币