Userpage AbuseFilter

From Meta, a Wikimedia project coordination wiki

Overview[edit]

On 30 November 2016, after a community discussion, a new editing filter was implemented on the English Wikipedia to prevent unregistered and very new users from modifying the userpages of other users. The rationale for this filter was to prevent vandalism and harassment directed at individual contributors; a random sample of 100 edits by unregistered users to userpages showed that about half of the edits were unconstructive and represented cases of vandalism and harassment. (The other half of edits were made by editors who were likely logged out, editing their own userpage).[1] Furthermore, there were no compelling use cases as to support why unregistered or new editors should be editing someone else's userpage.

This page was developed to provide information about the filter and implementation instructions so that it can be used in other Wikimedia communities.

The filter[edit]

The filter checks for the following:

  • Is the edit being made to the user namespace?
  • Is the editor unconfirmed? (i.e. Is their account less than four days old, and have they made fewer than 10 edits?)
  • Is the edit being made directly to a userpage (as opposed to a subpage)?

If all of these conditions are met, the edit is prevented, and the editor is shown the following message, as configured at MediaWiki:Abusefilter-warning-userpage:

There are also checks made for en:User:Sandbox and en:User:Jimbo Wales, which both were explicitly designed to be open to anyone for editing.

Filter syntax[edit]

article_namespace == 2 &
!("confirmed" in user_groups) &
!('/' in article_text) &
article_text != user_name &
article_articleid != 2829412 &
article_articleid != 31555737

Selectively unlocking a userpage with a template[edit]

You can use an alternative filter implementation to allow users to "unlock" their userpage and allow anyone to edit it by adding a template. In this example, we'll use the template {{unlocked userpage}}. All the user has to do is add this somewhere on their userpage and the filter will bypass its normal checks and allow anyone to edit the page.

Additionally, only the owner of the userpage or admins can add or remove the template. This is accomplished using a single filter, so you will likely want to change the language of the message that is shown to the user:

Template:Unlocked userpage[edit]

The template itself does not have to contain any special code, but you might consider having it add a category so that all of the unlocked userpages can be tracked. To do this use the syntax:

<includeonly>[[Category:Unlocked user pages]]</includeonly>

Now whenever someone transcludes the template on their userpage, the page will be added to [[Category:Unlocked user pages]]. You can name the template and the category whatever you would like, just make sure the filter looks for the right name.

Filter syntax[edit]

article_namespace == 2 &
!('/' in article_text) &
article_text != user_name & (
  template := "{{unlocked userpage}}";

  (
    !("confirmed" in user_groups) &
    !(template in old_wikitext)
  ) | (
    (
      (
        removed_lines contains template &
        !(template in added_lines)
      ) | (
        added_lines contains template &
        !(template in removed_lines)
      )
    ) & !("sysop" in user_groups)
  )
)

Again, you can change "{{unlocked userpage}}" to whatever you would like.

Implementation considerations[edit]

The filter and system message warning can be incorporated into any Wikimedia project's AbuseFilter. The warning message can be translated and changed as needed for each project.