Jump to content

Manual:封禁与解除封禁

本頁使用了標題或全文手工轉換
From mediawiki.org
This page is a translated version of the page Manual:Block and unblock and the translation is 100% complete.

具有足够高权限的用户(通常是管理员)可以封禁或解除封禁IP地址和注册用户,使之不得编辑页面、上传文件、移动页面,并且如果被封禁的用户先前拥有保护页面、解除页面保护、以及删除、还原页面的权限,被封禁后他们将同樣不得进行这些操作。

MediaWiki 的封禁机制通过抽象层实现,支持通过扩展添加新封禁类型。 针对不同类型的封禁,其创建/更新/移除方式及日志记录和列表显示机制各有不同;但对于检查用户是否被封禁、阻止受限操作以及通知用户的处理逻辑则是统一的。

标准封禁界面

MediaWiki核心的封禁功能是通过特殊页面 Special:Block 來套用的。 进行封禁操作有以下几个步骤:

  1. 指定封禁的是IP地址或是注册用户。 在表单的“IP地址,用户名或封禁ID:”字段中输入被封禁的IP地址或者注册用户的用户名。 请注意:不存在的用户也能被封禁,所以请确定您输入的用户名是正确的。 您也可以封禁IP段,参考Help:段封禁 中的操作步骤。
  2. 指定封禁参数 选择要禁止封禁目标做出的操作 全站范围 封禁可阻止封禁目标去编辑全站页面,而 部分页面 封禁可阻止封禁目标去编辑特定页面或某个名字空间的页面。
  3. 指定封禁的期限。 您可以在下拉菜单“期限”中选择一个预先定义好的封禁期限、也在“其他時間”欄位输入一个自定义的符合GNU标准形式的值。 如果被封禁的期限是“永久”,那么封禁将永不失效,除非被封禁的IP或者注册用户在将来被管理员解除封禁。
  4. 确定封禁的理由(可选)。 这个理由将被显示在被封禁用户尝试编辑页面的错误提示中。

点击“添加封禁”完成封禁操作。 所有的封禁会被记录在封禁日志中,并且所有当前生效中的封禁会被列在被封禁用户中。

您除了可以在Special:Block中手动输入被封禁的IP地址或用户名,还可以在访问用户或者用户讨论页时点击侧边栏工具的“添加封禁”链接。 在最近更改或者页面历史中,您也可以点击用户名或IP地址右侧的“封禁”链接。

封禁选项

MediaWiki版本:
1.8

在MediaWiki 1.8及之后的版本中,一些额外的封禁选项被加入。这些选项可以通过勾选封禁页面中的确认框来启用。

阻止创建帳戶
这个选项在封禁IP地址以及封禁注册用户时有效 启用后,在封禁生效期间,将禁止从被封禁的账户或IP地址注册新用户账户。 但是,当用户在其他wiki站点创建账户并首次访问封禁生效的wiki时,该限制可被绕过,因为全域账户会在用户首次访问时自动创建本地账户。 这种规避方法可以通过全域封禁来阻止,全域封禁可配置为在所有维基上阻止账户创建。
停用电子邮件
此选项会禁用被封禁用户使用Special:EmailUser界面的功能。 它用于在封禁期间防止对wiki邮件系统的滥用。 这仅影响拥有已确认电子邮件地址的注册用户。
阻止访问讨论页
此选项会阻止被封禁的用户或IP地址编辑他们自己的用户讨论页。 它通常用于反复滥用讨论页的情况,或者在预计无法进行富有成效的沟通时使用。
自动封禁该用户使用的最后一个IP地址,以及他们之后尝试编辑时使用的任何其他地址(也称为“自动封禁”)
这个选项将会在封禁注册用户时起作用。 如果启用,自动封禁将会对被封禁用户使用的最后一个IP地址以及之后该被封禁用户尝试使用的IP地址进行封禁。
对来自此IP地址的已登录用户应用封禁(也称为“硬封禁”)
这个选项修改了封禁IP地址时的影响。 启用后,封禁也适用于从该IP地址进行编辑的注册用户。
如果此选项被禁用,那么只有匿名用户会受到影响(也称为“软封禁”)。 软封禁不会影响注册用户,但会影响从该IP地址连接的临时账户以及由此引发的自动封禁

部份封鎖

MediaWiki版本:
1.33

自MediaWiki 1.33版本起,可以僅阻止封禁目標修改特定頁面或特定命名空間的所有頁面。 如果頁面被移動,限制將轉換到新標題上。 目前無法阻止不存在的頁面(「紅色連結」),並且不支援設定重疊多個有不同結束日期的封鎖。

在MediaWiki 1.33和1.34中,預設情況下會停用部份封鎖。 可以通過設定$wgEnablePartialBlocks = true來啟用它。

MediaWiki版本:
1.35

從MediaWiki 1.35開始,部份封鎖永遠啟用且不能被停用。 您可以透過加入一些JS或CSS到某個使用者或網站的common.js/common.css來隱藏部份封鎖表單元素。 但這不會停用透過API設定的部份封鎖。

MediaWiki版本:
1.37

自MediaWiki 1.37版本起,用户可能会被禁止执行某些操作,但仍能编辑wiki页面。 可以被阻止的核心操作包括:创建页面、移动页面、上传文件。

在MediaWiki 1.37到1.44版本之间,此功能默认处于禁用状态,可通过设置$wgEnablePartialActionBlocks = true来启用。

多重封禁

MediaWiki版本:
1.44

自MediaWiki 1.44版本起,在设置$wgEnableMultiBlocks参数后,管理员可对同一目标叠加多重封禁——这一功能被称为“multiblocks”。 有关更多信息,请参见Help:管理封鎖

解除封禁

可以通过被封禁用户特殊页面来解除对IP地址或注册用户的封禁。 在列表中找到您想要解封的IP地址或注册用户(您可以在搜索框输入IP地址或用户名来快速查找),并点击显示在封禁期限右边的“解除封禁”链接来解除封禁。

这将会把您带到一个确认页面。 在“原因:”字段中输入解除封禁的理由(可选),并点击“解除此封禁”来移除这个封禁。 所有解除封禁的操作会被记录在封禁日志中。

请注意如果封禁的是IP段,那么解封的范围必须覆盖整个IP段。 尝试解除对单个IP地址的封禁是无效的。

被封禁后的效果

当启用 $wgBlockDisablesLogin 参数时,被封禁的用户将被完全锁定账户。 该功能主要面向私有Wiki场景,当用户不再活跃时,可通过此机制撤销其阅读权限。

在其它wiki,被封禁的用户仍然能够阅读页面,但他们可能无法创建、編輯或移动页面,也无法上传文件。 被部份封鎖的用戶不能編輯在他們的封鎖設定中所指定的特定頁面或命名空間,但仍可以建立、編輯、或移動頁面,也能夠上傳檔案。 拥有特定的其他用户权限的被封禁用户在被封禁期间也无法使用这些权限,依對他們的封禁而定。 例如,拥有删除与还原页面以及保护及解除页面保护权限的用户們,若他們是被全站封禁后将不能进行上述的操作。 如果他們是被部份封鎖,他們仍可對那些沒有被封鎖的頁面進行這些操作。 但是,被封禁的用户如果拥有封禁及解除封禁的权限,那么他们仍然能够进行这些操作,尽管他们已经被封禁。解除对自己账户的封禁需要额外拥有unblockself权限;默认情况下管理员拥有此权限,但是在较大维基中有理由移除这个权限以降低账户盗取的破坏性。

被封禁的用户如果尝试去编辑页面、移动页面或上传文件时会显示“您已被封禁”的提示来告知他们已经被封禁。

如果某封禁的自动封禁选项被启用,且被封禁用户尝试进行编辑页面、移动页面或上传文件的操作,那么该被封禁用户尝试进行操作的IP地址也会被封禁。

与封禁有关的配置設定

下面的配置选项可通过LocalSettings.php 进行设置,且这些选项可以在具体封禁操作时在封禁界面上进行操作。

  • $wgAutoblockExpiry – 控制IP地址被自动封禁的有效期(以秒为单位)。 默认值为86400秒(1天)
  • $wgBlockAllowsUTEdit – 控制被封禁用户是否能够修改他们自己的用户讨论页 在当前(1.26+版本)默认为true。 是否能够在进行封禁时设置被封禁用户是否能修改他们自己的用户讨论页,当本选项为true时,在封禁操作时Special:Block将会显示对应选项。
  • 用户权限 blockemail控制管理员是否能够设置禁止用户使用Special:EmailUser界面。
  • $wgBlockDisablesLogin – 设置被封禁用户是否被阻止登录 默认为false。
  • $wgCookieSetOnAutoblock – (1.29+) 决定当用户被自动封禁时是否设置cookie。 这样做意味着被封禁的用户,即便退出并移动到新的IP地址也仍然会被封禁。 此项默认开启。
  • hideuser用户权限控制管理员是否能够在封禁日志、被封禁用户以及用户列表中隐藏被封禁的用户。
  • $wgEnableMultiBlocks – (1.44+) 该功能允许管理员通过全新的封禁管理界面,为同一目标设置多重分层封禁。


默认封禁时间选项

要修改“封禁有效期”下拉菜单中的默认选项,请编辑页面 MediaWiki:ipboptions。 有效期选项以逗号分隔的“标签:数值”字符串列表形式存储,例如 6 hours:6 hours,infinite:infinite。 若需显示西班牙语有效期选项,页面内容可设置为:6 horas:6 hours,2 días:2 days,para siempre:infinite

默认封禁时长的选项值为 "其它时间"。 要指定其他默认封禁时长,请编辑页面 MediaWiki:ipb-default-expiry 并输入所需的值。 请注意:必须填写实际数值而非显示标签。例如,若采用前文所述的西班牙语示例,MediaWiki:ipb-default-expiry 应设为 infinite(数值),而非para siempre(标签)。

MediaWiki版本:
1.35

要为匿名用户指定默认封禁时长,请编辑页面 MediaWiki:ipb-default-expiry-ip 并输入所需的数值。

依照前文的西班牙语示例,您应当填写 2 days(数值),而非2 días(标签)。

MediaWiki版本:
1.45

若要為臨時帳戶指定預設有效期,請編輯頁面 MediaWiki:ipb-default-expiry-temporary-account 並輸入所需值。

界面消息

URL 参数

MediaWiki版本:
1.18

Special:Block接受一些URL参数来预填充HTML表单:

  • wpTarget – 用户名/IP地址
  • wpEditingRestriction – 封鎖限制內容(=sitewide或=partial)
  • wpPageRestrictions – 要封鎖的頁面(僅適用於部分封鎖;使用%0A分隔多個頁面;至多10頁)
  • wpNamespaceRestrictions – 要封鎖的命名空間的ID(僅適用於部分封鎖;使用%0A分隔多個命名空間;可封鎖的命名空間ID列表請參閱API:封禁
  • wpExpiry – 封禁期限
  • wpAutoBlock自动封禁设置 (=1 or =0)
  • wpHardBlock – 硬封禁设置 (=1 or =0)
  • wpCreateAccount – 阻止创建新用户 (=1 or =0)
  • wpReason – 在MediaWiki:Ipbreason-dropdown下拉选项中的封禁理由
  • wpReason-other – 预填写其他理由字段
MediaWiki版本:
1.44

在MediaWiki 1.44版本中启用多重封禁功能后,Special:Block新增支持以下参数:

  • id – 待修改的封禁ID
  • remove – 是否移除封禁(=1 表示是,=0 表示否)。此操作需同时设置 id 参数


钩子


SQL

主页面: Manual:Block table

所有类型的封禁记录均存储在 block 数据表中。 MediaWiki 旧版本(1.42之前) 使用 ipblocks 数据表存储封禁记录,但该表同时包含用户账户封禁信息。 仅现有封禁记录会存储于此表中。 要查看历史封禁记录,请查询 logging 数据表。 ipb_address为字符串类型,可以是用户名、IP地址或留空。 ipb_user则存储被封禁用户的user_id。 以下为不同封禁类型的筛选方法:

  • 被封禁对象的相关数据存储在block_target 表中,并以bl_target_id作为主键。
    • 用户封禁 – WHERE bt_user != 0
    • IP地址封禁 – WHERE bt_user IS NULL AND bt_range_end = ''
    • IP地址段封禁 – WHERE bt_range_end != ''
  • 谁封禁?
    • 自动封禁 – WHERE bl_parent_block_id IS NULL OR bl_parent_block_id = 0
    • 管理员封禁 – WHERE bl_by_actor = 1234 (将数字替换为执行封禁的管理员的用户ID)
  • 被封禁的范围?
    • 部份封禁 – WHERE bl_by_actor = 0
    • 全站封禁(并非一部分封禁) – WHERE bl_by_actor = 1
  • 被封禁的时长?
    • 无限期封禁 – WHERE bl_expiry = 'infinity'
    • 有限期封禁 – WHERE bl_expiry != 'infinity'

参阅


代碼維護