Community health initiative/Blocking tools and improvements

From Meta, a Wikimedia project coordination wiki
Jump to: navigation, search

Other languages:
العربية • ‎বাংলা • ‎Deutsch • ‎Ελληνικά • ‎English • ‎español • ‎français • ‎magyar • ‎Bahasa Indonesia • ‎日本語 • ‎polski • ‎پښتو • ‎português do Brasil • ‎Türkçe
Light-Bulb icon by Till Teenck green.svg

Feature status: Prioritized, awaiting development
This wiki page documents information, plans, and ideas for a feature the Anti-Harassment Tools team is currently building or plans to build in the upcoming months.

🗣   We invite you to join the discussion on the talk page.

The Wikimedia Foundation's Anti-Harassment Tools team invites all Wikimedians to discuss new blocking tools and improvements to existing blocking tools in December 2017 for development work in early 2018.

What this page is for[edit]

Our team is identifying shortcomings in MediaWiki’s current blocking functionality in order to determine which blocking tools we can build for wiki communities to minimize disruption, keep bad actors off their wikis, and mediate situations where entire site blocks are not appropriate.

This discussion will help us prioritize which new blocking tools or improvements to existing tools our software developers will build in early 2018.

In early February we will want to narrow the list of suggestions to a few of the most promising ideas to pursue. We will ask for more feedback on a short list of ideas our software development team and Legal department think are the most plausible.

Please join us in discussing potential improvements to blocking tools on the talk page.

MediaWiki's current blocking functionality[edit]

Currently on Wikimedia wikis, users and IPs can be blocked from editing articles.[1] Blocks prohibit users from editing all pages in all namespaces on the wiki, with the optional exception of the blocked party's user_talk page. Blocks are permissioned by default to administrators and are logged publicly on Special:Log, Special:BlockList, and Special:Block.

Similar to blocks, global account locks prohibit users from logging-in to any Wikimedia wiki, and global blocks prohibit users from logging-in to any Wikimedia wiki, and global blocks can be set against IP addresses.

Autoblocks can be assigned to username blocks, which will automatically block IP addresses used by the offending user for 24 hours.

Problem 1. Username or IP address blocks are easy to evade by sophisticated users[edit]

Blocks can be set against a username, IP address, or IP range. IP addresses can be easily spoofed or changed via proxies. The barrier to create a new account is very low and easily circumventable. The Wikimedia movement values openness and privacy, so we must balance walling off bad actors against keeping our platform accessible to good-faith newcomers.

We could implement new blocking techniques that use different, more modern pieces of identification technology. These features will need to comply with our Privacy Policy and Terms of Use.

Proposed potential solutions:

  • Block by user agent[2][3][4] (including CheckUser search)
  • Block by device ID (including CheckUser search)
  • Global blocks for usernames[5]
  • Add "Prevent account creation" to global block[6]
  • Cookie blocking for anons[7]
  • Add a way to extend autoblock to longer than 1 day[8]
  • Proactive globally block open proxies (or build a system that shares their IPs cross-wiki)
  • Hash personally identifiable data to surface as a percentage match to CheckUser[9]
  • AI that compares editing patterns and language to predict possible sockpuppets[9]
  • Identify sockpuppets by typing patterns (e.g. rhythm/speed), network speed, and editing patterns (e.g. time of day, edit session length, categories of pages edited)[9]
  • Display all contributions made within an IP range on one feed (aka 'Range Contributions')[9][10]
  • Extend Nuke to IP ranges[9]

Problem 2. Aggressive blocks can accidentally prevent innocent good-faith bystanders from editing[edit]

Many IPs and IP ranges are shared by multiple users (e.g. libraries, schools, office buildings) and most individual IPs can (and will) be reassigned by ISPs to other users. If one bad actor gets the IP or IP range blocked, other users cannot edit. Some IP blocks allow for logged-in editing, and good usernames can be whitelisted from IP blocks that prohibit logged-in editing.

We could implement new features that prohibit IPs from editing or creating throwaway accounts, but allow good faith bystanders to still create accounts and productively edit.

Proposed potential solutions:

  • Require all accounts created in an IP range to confirm their email address before editing.
  • Prevent the use (or flag incidents) of blacklisted email addresses from being associated with new user accounts
  • Throttle account creation and email sending per browser as well as IP address[11][3]
  • Require email address to be unique for edits in certain IP ranges (potentially requiring whitelisted email domains)[9]
  • Allow CheckUsers to compare hashed email addresses[9]
  • Build AI that automatically sets a block length and type based on UserAgent, IP and/or email[9]
  • Require two-factor authentication for edits in certain IP ranges[9]
  • Convert Twinkle and/or Huggle from gadgets to extensions, increase their accuracy[9]

Problem 3. Full-site blocks are not always the appropriate response to some situations[edit]

Smaller, more tactical blocks may defuse situations while retaining constructive contributors. On some wikis such as English Wikipedia, this concept is dictated by bans. However, technical means to enforce bans are currently limited, and consequently a user may unnecessarily be blocked from editing the wiki as a whole.

Full-site blocks are akin to a sledgehammer. How can we build fly-swatters to prevent a user from causing limited harm while keeping them a part of the wiki.

Proposed potential solutions:

  • Block a user from...
    • ...individual pages[12][13][14][15]
    • ...all pages inside a specific category
    • ...specific namespaces[16]
    • ...creating new pages
    • ...uploading files[17]
    • ...all pages except talk pages[18][19]
    • ...all pages, except a whitelist
    • ...viewing Special:Contributions
    • ...emailing or pinging other users[20][21]
  • Allow admins to specify exactly which permissions to block.[22][23][24][25]
  • Allow admins to temporarily revoke a users' autoconfirmed status.[19]
  • Require all edits by a user to go through deferred changes.[26]
  • Block that only expires when a user has read a specified page (training module, user talk page, etc.)[27][28]
  • Allow admins to throttle a user's edits to a maximum number per day/hour/etc[9]
  • Build a version AbuseFilter that runs on all edits of specified users to create custom, complex blocks[9]
  • Tool to prevent users from writing about themselves.[9]
  • User masking systems to obfuscate or ‘hide’ users from each other on wiki [9]

Problem 4. The tools to set, monitor, and manage blocks have opportunities for productivity improvement[edit]

The existing blocking tools (Special:Block, the API, Twinkle, Special:BlockList, etc.) are used daily by numerous users across all Wikimedia wikis. Using these tools can be time intensive, so we would like to explore ideas of how we can simplify the workflows to set or modify a block, monitor block logs, and check the status or details of a block.

Proposed potential solutions

  • When leaving a warning on a user talk page, display how many other warnings have ever been given to that user.[29]
  • Twinkle should automatically know the appropriate warning template to use on that user.
  • Log bans like blocks, which could result showing the information on their user page, contributions, or autogenerate a list of all banned users.[30]
  • Allow CheckUsers to watch specific IPs[31]
  • Allow admins to annotate previous blocks as accidental[32][33][34]
  • Allow admins to set a block date range via datetime selector[35]
  • Allow admins to set different expiration times for blocking editing vs. account creation[36]
  • Allow admins to oversight usernames while blocking them[37]
  • Display block expirations in logs[38]
  • Display a warning on the block page when admins are blocking a sensitive IP[39]
  • Special:Block could suggest block length for common policy infractions[9]
  • Improved way to set mass blocks[9]
  • Block appeal process could be improved to reduce the work required for admins[9]
  • Display if a user is currently blocked on another wiki on Special:Block[9]
  • Mobile block notices are abysmal [9][40]
  • Allow admins to ‘pause’ a block so the user can participate in on-wiki discussions[9]

See also[edit]

  • /Links — A list of links on Meta Wiki,, and Phabricator about existing blocking tools or suggestions for improvements.
  • /English Wikipedia policies — A list of links on English Wikipedia about blocking policies or tools, and talk page conversations about improvements.
  • Community health initiative/Editing restrictions — The WMF's Anti-Harassment Tools team's documentation page about how new tools could support the socially enforced editing restrictions used by English Wikipedia.


  1. Help:Blocking_users on
  2. T100070 — Allow User agent (UA)-based IP Blocks
  3. a b 2015 Community Wishlist Survey/Moderation and admin tools#Improve MediaWiki's blocking tools
  4. 2017 Community Wishlist Survey/Smart blocking
  5. Prioritization of action items, Stewards visit 2015, page 9
  6. T17273 — Please add "Prevent account creation" to global block
  7. T152462 — Add cookie when blocking anonymous users
  8. T27305 — Add a way to extend autoblock to longer than 1 day
  9. a b c d e f g h i j k l m n o p q r s t Talk:Community health initiative/Blocking tools and improvements
  10. phab:T145912
  11. T106930 — Throttle account creation and email sending per browser as well as IP address
  12. T2674 – Allow users to be blocked from editing a specific article
  13. See also: Community health initiative/Editing restrictions
  14. 2015 Community Wishlist Survey/Moderation and admin tools#Enhanced per-user, per-article protection/blocking
  15. 2017 Community Wishlist Survey/Per-page user blocking
  16. T179110 — Allow users to be blocked from editing a specific namespace
  17. T6995 — Ability to block users from uploading files only
  18. T18644 — Allow users to be blocked from editing non-talk pages only
  19. a b Wikipedia talk:Blocking policy/Archive 21 on English Wikipedia
  20. It is currently possible to block someone from using Special:EmailUser, but this requires also blocking them from editing
  21. T104099 — Add ability to block users from emailing other users (without performing a full block)
  22. T27400 — Software should allow admins to give specific users permission to edit specific pages through blocks
  23. Extended_blocking on
  24. Wikipedia talk:Blocking policy/Archive 23 on English Wikipedia
  25. 2017 Community Wishlist Survey/Allow further user block options ("can edit XY" etc.)
  26. 2016 Community Wishlist Survey/Categories/Moderation tools#All edits from hardblocked IP mark as unreviewed
  27. T18447 — Set a block that only expires when a user has read a specified page (training module, user talk page, etc.)
  28. Wikipedia talk:Blocking policy/Archive 22 on English Wikipedia
  29. Wikipedia talk:Administrators' noticeboard/Archive 8#Warnings and discussion before blocks on English Wikipedia
  30. Wikipedia talk:Banning policy/Archive 3#Recording of Bans on English Wikipedia
  31. T21796 — CheckUser watchlist feature
  32. T46759 — Allow marking blocks that were made in error
  33. 2016 Community Wishlist Survey/Categories/Admins and stewards#Enable administrators to update block logs
  34. Wikipedia talk:Blocking policy/Archive 20 on English Wikipedia
  35. T132220 — Add datetime selector to block and protect interface to select expiration
  36. T65238 — Different lengths of block and block account creation
  37. 2016 Community Wishlist Survey/Categories/Admins and stewards#Allow admins to hide names of users while blocking them
  38. T148649 — Display an entry for page in watchlist when page protection expired; Display an entry in user page when user blocking expired
  39. T151484 — Display a warning on the block page when admins are blocking a sensitive IP
  40. phab:T165535