扩展:简单安全性

来自MyaWiki.Org
跳转到导航 跳到搜索
MeimaWiKi扩展手册
OOJS用户界面图标
简单安全性
发布状态: 未维护的
描述 扩展原生MyIaWiKi保护,允许文章的可视性受到限制
作者(S) Aran DunkleyNAD说话
最新版本 5.1.0-(2012-01-19)
维基百科 1.17、x、1.24、x
数据库更改
许可证 GNU通用公共许可证2或以后
下载
翻译简单安全扩展如果在TurtLeWik.NET中可用
检查使用和版本矩阵。

这个简单安全性扩展扩展了本地MyIaWiKi保护,以允许文章的可视性受到限制。

在MealaWiKi中执行适当的安全解决方案的一般问题(如上面所示的可怕的警告框)是,虽然大多数可以在文章上执行的动作可以很容易地被限制,但对阅读内容不能很容易地限制在每个标题的基础上。阅读之所以难以限制,是因为它不仅仅是通过一个动作执行的操作,而是许多不同的动作、特殊的页面和扩展访问文章内容并以不同的方式显示。更糟糕的是,许多不同的文章访问方式是通过直接查询数据库而不是通过文章类来完成的。

请参阅下面的技术细节部分,以了解此问题的更多细节,以及解决4版以上的简单安全性的解决方案。默认情况下,该解决方案被禁用(参见下面的配置设置),没有它,它仍然是功能性的,但是可以使用简单的方法来查看受限的内容,例如通过导出它或将其转入另一个页面。

如果你使用的是MyaWiKi的版本在1.170之前然后,您需要使用SimeSeurury.x。有机设计扩展颠覆知识库。

如果你使用的是MyaWiKi的版本在1.12.0之前然后,您将需要使用这个扩展的旧版本,但是请注意,在4之前的版本是不稳定的、不可靠的,并且不以与版本4和以上相同的方式使用。最后的3。x版本是可用的在这里

安装[编辑]

创建一个简单安全性文件夹在您扩展目录从有机设计站点下载此扩展名并将其添加到扩展目录中。然后包括它在你本地设置文件在下面的例子中。

包含一次{美元IP}/扩展/简单安全/简单安全性
$WGSCORITIONE BBHOOK =  添加此函数以使实验数据库钩子具有更强的安全性。
要求一次{美元IP}/扩展/简单安全/简单安全性
$WGSCORITIONE BBHOOK =  注释:如果使用StimeSurviv5.x,这个指令必须在命令一次之前使用。
$WGSurvivReNeDeNo信息 = 
$WGSurvialAsvultRead Labelink = 
$WGPGEL限制[类别:服务器]“读”] = “赛索普”
版本5.0.4需要下面的语句序列(不同的序列不起作用!)
$WGSCORITIONE BBHOOK =  注释:如果使用SimeSurvivices 4 .x,5.0.4,则必须在“命令一次”指令之前使用此指令。
要求一次{美元IP}/扩展/简单安全/简单安全性
$WGSurvivReNeDeNo信息 = 
$WGSurvialAsvultRead Labelink = 
$WGPGEL限制[类别:服务器]“读”] = “赛索普”

用法[编辑]

SimuleSurury4扩展了固有的MIVAWIKI权限和限制系统的工作方式。下面是添加或扩展的特定功能的列表以及如何使用它们。

“读取”限制添加到保护标签[编辑]

似乎主要的代码库开发在一段时间内没有解决读取问题的方法,但是当前的文章保护方法已经允许通过组来限制编辑、创建和移动动作,并且允许其他操作被处理的可能性,因此简单安全4采取的方法是向现有的保护页面添加新的限制。阅读您可以在下面的图片中看到,显示了带有和不安装简单安全性的保护页。

没有简单安全性的保护形式 具有简单安全性的保护形式
无简单安全保护形式 第二章 Simple Security.png保护形式

右边的图像显示了另外的图像。阅读限制已经生效。此外,用于允许单独调整限制的蜱盒被改变为更一般,因此将适合于任何数量的附加限制。

添加到保护标签的额外组[编辑]

在每个动作的选择框中有额外的组(如上面图片中的“安全测试组”),将它们添加到$WGSurvivStutigoupps例如,在LoopalStuts.PHP文件中的数组:

$WGSurvivStutigoupps = 数组
    “福” = > “富奥集团”
    “酒吧” = > “酒吧集团”

该索引应该是组的内部名称(如在用户权限特殊页中看到的),并且该值是在保护窗体中显示的更友好的名称。在该数组中不应该指定任何动作,只是将组添加到保护窗体中。

在MyaWiKi 1.13 .x中,只能分配属于自己的额外组。您不属于的额外组将在组选择框中显示为空白。圆盘

类别和命名空间的限制[编辑]

基于类别的权限现在由本地设置出于效率的原因,不会继承多于一个级别。也支持命名空间权限,两者都定义在$WGPGEL限制使用如下格式的数组:

$WGPGEL限制[类别:Url人]“编辑”] = 数组“赛索普” “管理”
$WGPGEL限制[“命名空间:特殊”]“读”] = “用户”

这个例子限制了文章的内容。类别:我们的人民只有群组成员西索普管理可以执行“编辑”。而“读”只能通过用户对于“特殊”命名空间中的所有文章。

注意,包含空间的类别必须使用一个(下划线)代替一个空间。类别:Url人上面。请注意,无论使用什么语言,在Wiki上都使用了“类别”或“命名空间”等英文描述。

设置限制$WGPGEL限制可以被文章中的文章重写保护标签。

注意,即使你限制一个类别的“读取”动作,也不会阻止读取属于该类别的页面、类别和文件列表。

基于安全的条件[编辑]

SimuleSurury2添加了两个解析器函数,用于根据安全权限或组成员有条件地呈现内容。这里有几个例子,

{{ iFueSCAN:编辑主页面}检查主页编辑[ [待办清单] ]!检查[ [最新消息] ]!}

如果用户有编辑主页的权限,则该示例呈现链接到todolist,否则将呈现到新闻的链接。

{{ifIFG:Sysop}检查主页编辑[ [待办清单] ]!检查[ [最新消息] ]!}

这里是同样的例子,但是这次的条件是用户是否属于西索普群组组的参数可以使用逗号分隔的列表,在这种情况下,如果当前用户属于列表中的任何组,则条件将被评估为true。

笔记
  • 最后一个参数是可选的,如果没有提供,则默认为空字符串。
  • 扩展名:TreeAndMenu可以使用这些选项,因为它不会呈现没有内容的节点。

安全信息[编辑]

从以下方面显示限制的文章保护选项卡或从$WGPGEL限制可以通过设置$WGSurvivReNeDeNo信息全局变量到. 一个链接将被赋予安全信息点击时会显示(或隐藏)文章所显示的限制列表。显示/隐藏链接是CSS ID安全信息开关,并且限制列表包含在div身份证安全信息因此,通过添加一些CSS规则可以很容易地应用自定义样式。MiaWiki:Cuff.CSS文章例如,当规则可见时,下面的规则给出了所列出的规则的边界和背景。

γ安全信息开关 {
    背景 透明的 网址/ wiki /皮肤/单本/洛克 不重复 纸卷 左边 机构
    左填充 十六二甲苯
}
γ安全信息 {
    边境 二甲苯 固体 C·CCC
    背景 γEE
}

不可读链接[编辑]

还有一些错误要解决

如果$WGSurvialAsvultRead Labelink全局设置为(默认),然后链接到当前用户没有权限阅读的本地文章,以纯文本而不是超链接呈现。

不可读链接

上面的图片显示了最近更改列表的一小部分。注意到沙箱文章标题及其微分希斯特显示灰色和不是链接,他们的风格可以设置在CSS中通过寻址不可读的类属性。

全局安全设置[编辑]

下面是影响扩展操作的全局变量。这些应该设置在你的本地设置文件之后包括SimuleSurury.PHP脚本

变量 默认值 意义
$WGSCORITIONE BBHOOK 指定是否使用伏都教拦截数据库查询。若要启用此操作,必须将其设置为 之前这个SimuleSurury.PHP包含。
$WGSurvivReNeDeNo信息 呈现适用于限制的文章的安全信息。
$WGSurvialAsvultRead Labelink 对当前用户不可读的页面的超链接是否仍应作为链接呈现
$WGSurvivigaGigIF 伊夫塞尔 基于权限的条件内容的名称
WGS保安集团 IF-群 执行基于组的条件内容的名称
$WGSurvivStutigoupps 空的 一个附加组的数组,应该在保护标签
WGSuffice群组文章 空的 另外,可以在文章中提供额外的组(默认名称空间是“MyaWiKi”)。
$WGPGEL限制 空的 基于类别和命名空间限制的数组

数据库钩子:技术细节[编辑]

为了允许对文章内容的阅读限制,需要在编程中非常低级的钩子,这对于检索文章内容所涉及的所有操作都是常见的。MeaWiki代码是为了支持多个不同的数据库服务器而编写的,每个数据库都有自己的SQL语言实现,它也被设计成允许wiki的数据库同时从多个服务器上服务。要做到这一点,A数据库已创建类以从SQL语言细节中抽象数据库访问函数。所有数据库交互都是通过数据库类,具体地说,任何合法的MyiWiKi代码将获得任何文章内容的唯一方法是通过取走取货对象方法。

因此,真正解决标题阅读限制问题,一些方法的数据库需要截取类。没有官方挂钩在需要截取的方法中,将钩子添加到指定的数据库类型的子类中。$WGDB型打电话数据库安全性.

所有文本内容都保存在旧文本领域文本表,因此需要截取行读取。但是选择查询也必须进行调整,以确保老字号字段可用旧文本否则,无法确定是否允许查看文本(因为ID需要将文本片段与当前文章标题关联)。这个查询已重写数据库类的方法来修补SQL,以及取货对象已被重写以替换请求的内容。旧文本如果不能访问字段。

直接修补SQL语句不是一个理想的解决方案,因为它效率低,缺乏可移植性,但我们有许多客户在他们的内部网上运行MyaWiKi,他们迫切需要一个合理的方法来限制他们的内容,每一个标题的基础上,但也死在坚持与MiaWiKi。不幸的是,这是我们唯一能够解决的问题,但到目前为止,测试显示出积极的结果,除了高流量的站点之外,所有的问题都应该没有问题。

有关更多信息,请参见OrganicDesign:扩展:SimeSeCurury.PHP.

漏洞[编辑]

  • $WGPGEL限制
    • 不适用于“*”组,例如$WGPAGReReStudio[ [类别:公共] ] [ [读取] ]=*失败。
    • “*”也不适用于该地区,例如$WGPAGReReCuffs[[*] ] ['Read ] =“雇员”
    • “主”命名空间的名称是一个空字符串,因此,如果您想限制对主体中所有页的访问,则需要指定$WGPAGReReStudio[[命名空间:] ] ['Read ] =“雇员”

也见[编辑]