手册:封禁与解除封禁

This page is a translated version of the page Manual:Block and unblock and the translation is 91% complete.
Outdated translations are marked like this.

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

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时,该限制可被绕过,因为全域账户会在用户首次访问时自动创建本地账户。 不过,这一绕过行为可通过阻止账户创建的全域封禁来阻止。
Block emails
This option disables the blocked user's ability to use the Special:EmailUser interface. It is used to prevent abuse of the wiki’s email system during the block. This only affects registered users with confirmed email addresses.
Block talk page access
This option prevents the blocked user or IP address from editing their own user talk page. It is commonly used in cases of repeated abuse of the talk page or when no productive communication is expected.
自动封禁该用户使用的IP地址及其之后尝试使用的IP地址
这个选项将会在封禁注册用户时起作用。 如果启用,自动封禁将会对被封禁用户使用的最后一个IP地址以及之后该被封禁用户尝试使用的IP地址进行封禁。
Apply block to logged-in users from this IP address (also called hardblock)
这个选项修改了封禁IP地址时的影响。 当它被启用时,封禁将只影响来自该IP地址的匿名用户编辑;来自该IP地址的注册用户编辑将不受影响。
If this option is disabled, only anonymous users are affected (also called softblock). 这个选项对于封禁注册用户没有任何作用,但对由此产生的自动封禁是有效的。

部分封鎖

MediaWiki版本:
1.33

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

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

MediaWiki版本:
1.35

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

多重封禁

MediaWiki版本:
1.44

自MediaWiki 1.44版本起,在设置$wgEnableMultiBlocks参数后,管理员(sysops)可对同一目标叠加多重封禁——该机制被称为"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(标签)。

界面消息

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'

参见

代碼維護