CINXE.COM

Extension:AbuseFilter - MediaWiki

<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-disabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-disabled skin-theme-clientpref-day vector-toc-available" lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>Extension:AbuseFilter - MediaWiki</title> <script>(function(){var className="client-js vector-feature-language-in-header-disabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-disabled skin-theme-clientpref-day vector-toc-available";var cookie=document.cookie.match(/(?:^|; )mediawikiwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""], "wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"0ea0f056-1af9-41d5-8eed-407afbbe7757","wgCanonicalNamespace":"Extension","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":102,"wgPageName":"Extension:AbuseFilter","wgTitle":"AbuseFilter","wgCurRevisionId":6853405,"wgRevisionId":6853405,"wgArticleId":28437,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Extensions with release branches compatibility policy","Extensions bundled with MediaWiki 1.38","Stable extensions","User activity extensions","Special page extensions","API extensions","Extensions supporting Composer","GPL licensed extensions","Extensions in Wikimedia version control","ArticleDelete extensions","BeforeCreateEchoEvent extensions","ChangeTagsListActive extensions","CheckUserInsertChangesRow extensions", "CheckUserInsertLogEventRow extensions","CheckUserInsertPrivateEventRow extensions","ContributionsToolLinks extensions","EditFilterMergedContent extensions","GetAutoPromoteGroups extensions","GetPreferences extensions","HistoryPageToolLinks extensions","JsonValidateSave extensions","ListDefinedTags extensions","LoadExtensionSchemaUpdates extensions","PageSaveComplete extensions","ParserOutputStashForEdit extensions","RecentChange save extensions","SaveUserOptions extensions","TitleMove extensions","UndeletePageToolLinks extensions","UploadStashFile extensions","UploadVerifyUpload extensions","UserMergeAccountFields extensions","GetUserPermissionsErrors extensions","All extensions","Extensions requiring Composer with git","Extensions used on Wikimedia","Extensions included in Canasta","Extensions available as Debian packages","Extensions included in Fandom","Extensions included in Miraheze","Extensions included in MyWikis","Extensions included in ProWiki", "Extensions included in ShoutWiki","Extensions included in Telepedia","Extensions included in wiki.gg","Extensions included in WikiForge","Spam management extensions"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"Extension:AbuseFilter","wgRelevantArticleId":28437,"wgIsProbablyEditable":false,"wgRelevantPageIsProbablyEditable":false,"wgRestrictionEdit":["autoconfirmed"],"wgRestrictionMove":["autoconfirmed"],"wgNoticeProject":"mediawiki","wgCiteReferencePreviewsActive":true,"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":false,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":30000,"wgInternalRedirectTargetUrl":"/wiki/Extension:AbuseFilter","wgTranslatePageTranslation":"source","wgCentralAuthMobileDomain":false, "wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"personal","wgULSisCompactLinksEnabled":true,"wgVector2022LanguageInHeader":false,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q4582485","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"]};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.translate.tag.languages":"ready","ext.inputBox.styles":"ready","ext.pygments":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","jquery.makeCollapsible.styles":"ready","ext.translate.edit.documentation.styles":"ready","ext.translate":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.pt":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"}; RLPAGEMODULES=["mediawiki.action.view.redirect","ext.pygments.view","site","mediawiki.page.ready","jquery.makeCollapsible","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.translate.pagetranslation.uls","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.compactlinks","ext.uls.interface","wikibase.client.vector-2022","ext.checkUser.clientHints","wikibase.sidebar.tracking"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=en&amp;modules=ext.inputBox.styles%7Cext.pygments%2Ctranslate%2CwikimediaBadges%7Cext.translate.edit.documentation.styles%7Cext.translate.tag.languages%7Cext.uls.pt%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediamessages.styles%7Cjquery.makeCollapsible.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&amp;only=styles&amp;skin=vector-2022"> <script async="" src="/w/load.php?lang=en&amp;modules=startup&amp;only=scripts&amp;raw=1&amp;skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=en&amp;modules=site.styles&amp;only=styles&amp;skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.4"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/6/6d/Coolest_Tool_Award_2020_square_logo.svg/1200px-Coolest_Tool_Award_2020_square_logo.svg.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="1214"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/6/6d/Coolest_Tool_Award_2020_square_logo.svg/800px-Coolest_Tool_Award_2020_square_logo.svg.png"> <meta property="og:image:width" content="800"> <meta property="og:image:height" content="809"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/6/6d/Coolest_Tool_Award_2020_square_logo.svg/640px-Coolest_Tool_Award_2020_square_logo.svg.png"> <meta property="og:image:width" content="640"> <meta property="og:image:height" content="647"> <meta name="viewport" content="width=1120"> <meta property="og:site_name" content="MediaWiki"> <meta property="og:title" content="Extension:AbuseFilter - MediaWiki"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//m.mediawiki.org/wiki/Extension:AbuseFilter"> <link rel="apple-touch-icon" href="/static/apple-touch/mediawiki.png"> <link rel="icon" href="/static/favicon/mediawiki.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="MediaWiki (en)"> <link rel="EditURI" type="application/rsd+xml" href="//www.mediawiki.org/w/api.php?action=rsd"> <link rel="canonical" href="https://www.mediawiki.org/wiki/Extension:AbuseFilter"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/"> <link rel="alternate" type="application/atom+xml" title="MediaWiki Atom feed" href="/w/index.php?title=Special:RecentChanges&amp;feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-102 ns-subject page-Extension_AbuseFilter rootpage-Extension_AbuseFilter skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Jump to content</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Main menu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Main menu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Main menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">hide</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/MediaWiki" title="Visit the main page [z]" accesskey="z"><span>Main page</span></a></li><li id="n-mw-download" class="mw-list-item"><a href="/wiki/Download"><span>Get MediaWiki</span></a></li><li id="n-mw-extensions" class="mw-list-item"><a href="/wiki/Special:MyLanguage/Category:Extensions"><span>Get extensions</span></a></li><li id="n-blog-text" class="mw-list-item"><a href="https://techblog.wikimedia.org/"><span>Tech blog</span></a></li><li id="n-mw-contribute" class="mw-list-item"><a href="/wiki/Special:MyLanguage/How_to_contribute"><span>Contribute</span></a></li> </ul> </div> </div> <div id="p-support" class="vector-menu mw-portlet mw-portlet-support" > <div class="vector-menu-heading"> Support </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="/wiki/Special:MyLanguage/Help:Contents" title="The place to find out"><span>User help</span></a></li><li id="n-mw-faq" class="mw-list-item"><a href="/wiki/Special:MyLanguage/Manual:FAQ"><span>FAQ</span></a></li><li id="n-mw-manual" class="mw-list-item"><a href="/wiki/Special:MyLanguage/Manual:Contents"><span>Technical manual</span></a></li><li id="n-mw-supportdesk" class="mw-list-item"><a href="/wiki/Project:Support_desk"><span>Support desk</span></a></li><li id="n-mw-communication" class="mw-list-item"><a href="/wiki/Special:MyLanguage/Communication"><span>Communication</span></a></li> </ul> </div> </div> <div id="p-development" class="vector-menu mw-portlet mw-portlet-development" > <div class="vector-menu-heading"> Development </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mw-developerportal" class="mw-list-item"><a href="https://developer.wikimedia.org/"><span>Developer portal</span></a></li><li id="n-svn-statistics" class="mw-list-item"><a href="/wiki/Development_statistics"><span>Code statistics</span></a></li> </ul> </div> </div> <div id="p-mediawiki.org" class="vector-menu mw-portlet mw-portlet-mediawiki_org" > <div class="vector-menu-heading"> mediawiki.org </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-portal" class="mw-list-item"><a href="/wiki/Project:Help" title="About the project, what you can do, where to find things"><span>Community portal</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="A list of recent changes in the wiki [r]" accesskey="r"><span>Recent changes</span></a></li><li id="n-mw-translate" class="mw-list-item"><a href="/wiki/Special:LanguageStats"><span>Translate content</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:Random" title="Load a random page [x]" accesskey="x"><span>Random page</span></a></li><li id="n-mw-discussion" class="mw-list-item"><a href="/wiki/Project:Village_Pump"><span>Village pump</span></a></li><li id="n-Sandboxlink-portlet-label" class="mw-list-item"><a href="/wiki/Project:Sandbox"><span>Sandbox</span></a></li> </ul> </div> </div> <div id="p-lang" class="vector-menu mw-portlet mw-portlet-lang" > <div class="vector-menu-heading"> In other languages </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-ar mw-list-item"><a href="https://ar.wikipedia.org/wiki/%D9%88%D9%8A%D9%83%D9%8A%D8%A8%D9%8A%D8%AF%D9%8A%D8%A7:%D9%85%D8%B1%D8%B4%D8%AD_%D8%A7%D9%84%D8%A5%D8%B3%D8%A7%D8%A1%D8%A9" title="ويكيبيديا:مرشح الإساءة – Arabic" lang="ar" hreflang="ar" data-title="ويكيبيديا:مرشح الإساءة" data-language-autonym="العربية" data-language-local-name="Arabic" class="interlanguage-link-target"><span>العربية</span></a></li><li class="interlanguage-link interwiki-azb mw-list-item"><a href="https://azb.wikipedia.org/wiki/%D9%88%DB%8C%DA%A9%DB%8C%E2%80%8C%D9%BE%D8%AF%DB%8C%D8%A7:%D8%AE%D8%A7%D8%B1%D8%A7%D8%A8%DA%A9%D8%A7%D8%B1%D9%84%DB%8C%D9%82_%D8%B3%DB%86%D8%B2%DA%AF%D9%8E%D8%AC%DB%8C_%D8%AF%D9%8E%DB%8C%DB%8C%D8%B4%D8%AF%DB%8C%D8%B1%D9%86%D9%84%D8%B1" title="ویکی‌پدیا:خارابکارلیق سۆزگَجی دَییشدیرنلر – South Azerbaijani" lang="azb" hreflang="azb" data-title="ویکی‌پدیا:خارابکارلیق سۆزگَجی دَییشدیرنلر" data-language-autonym="تۆرکجه" data-language-local-name="South Azerbaijani" class="interlanguage-link-target"><span>تۆرکجه</span></a></li><li class="interlanguage-link interwiki-be-x-old mw-list-item"><a href="https://be-tarask.wikipedia.org/wiki/%D0%92%D1%96%D0%BA%D1%96%D0%BF%D1%8D%D0%B4%D1%8B%D1%8F:%D0%A4%D1%96%D0%BB%D1%8C%D1%82%D0%B0%D1%80_%D1%80%D1%8D%D0%B4%D0%B0%D0%B3%D0%B0%D0%B2%D0%B0%D0%BD%D1%8C%D0%BD%D1%8F%D1%9E" title="Вікіпэдыя:Фільтар рэдагаваньняў – Belarusian (Taraškievica orthography)" lang="be-tarask" hreflang="be-tarask" data-title="Вікіпэдыя:Фільтар рэдагаваньняў" data-language-autonym="Беларуская (тарашкевіца)" data-language-local-name="Belarusian (Taraškievica orthography)" class="interlanguage-link-target"><span>Беларуская (тарашкевіца)</span></a></li><li class="interlanguage-link interwiki-bn mw-list-item"><a href="https://bn.wikipedia.org/wiki/%E0%A6%89%E0%A6%87%E0%A6%95%E0%A6%BF%E0%A6%AA%E0%A6%BF%E0%A6%A1%E0%A6%BF%E0%A6%AF%E0%A6%BC%E0%A6%BE:%E0%A6%B8%E0%A6%AE%E0%A7%8D%E0%A6%AA%E0%A6%BE%E0%A6%A6%E0%A6%A8%E0%A6%BE_%E0%A6%9B%E0%A6%BE%E0%A6%81%E0%A6%95%E0%A6%A8%E0%A6%BF" title="উইকিপিডিয়া:সম্পাদনা ছাঁকনি – Bangla" lang="bn" hreflang="bn" data-title="উইকিপিডিয়া:সম্পাদনা ছাঁকনি" data-language-autonym="বাংলা" data-language-local-name="Bangla" class="interlanguage-link-target"><span>বাংলা</span></a></li><li class="interlanguage-link interwiki-ca mw-list-item"><a href="https://ca.wikipedia.org/wiki/Viquip%C3%A8dia:Filtre_d%27edicions" title="Viquipèdia:Filtre d&#039;edicions – Catalan" lang="ca" hreflang="ca" data-title="Viquipèdia:Filtre d&#039;edicions" data-language-autonym="Català" data-language-local-name="Catalan" class="interlanguage-link-target"><span>Català</span></a></li><li class="interlanguage-link interwiki-cs mw-list-item"><a href="https://cs.wikipedia.org/wiki/Wikipedie:Edita%C4%8Dn%C3%AD_filtr" title="Wikipedie:Editační filtr – Czech" lang="cs" hreflang="cs" data-title="Wikipedie:Editační filtr" data-language-autonym="Čeština" data-language-local-name="Czech" class="interlanguage-link-target"><span>Čeština</span></a></li><li class="interlanguage-link interwiki-da mw-list-item"><a href="https://da.wikipedia.org/wiki/Hj%C3%A6lp:Misbrugsfilter" title="Hjælp:Misbrugsfilter – Danish" lang="da" hreflang="da" data-title="Hjælp:Misbrugsfilter" data-language-autonym="Dansk" data-language-local-name="Danish" class="interlanguage-link-target"><span>Dansk</span></a></li><li class="interlanguage-link interwiki-de mw-list-item"><a href="https://de.wikipedia.org/wiki/Wikipedia:Bearbeitungsfilter" title="Wikipedia:Bearbeitungsfilter – German" lang="de" hreflang="de" data-title="Wikipedia:Bearbeitungsfilter" data-language-autonym="Deutsch" data-language-local-name="German" class="interlanguage-link-target"><span>Deutsch</span></a></li><li class="interlanguage-link interwiki-en mw-list-item"><a href="https://en.wikipedia.org/wiki/Wikipedia:Edit_filter" title="Wikipedia:Edit filter – English" lang="en" hreflang="en" data-title="Wikipedia:Edit filter" data-language-autonym="English" data-language-local-name="English" class="interlanguage-link-target"><span>English</span></a></li><li class="interlanguage-link interwiki-es mw-list-item"><a href="https://es.wikipedia.org/wiki/Wikipedia:Filtro_de_ediciones" title="Wikipedia:Filtro de ediciones – Spanish" lang="es" hreflang="es" data-title="Wikipedia:Filtro de ediciones" data-language-autonym="Español" data-language-local-name="Spanish" class="interlanguage-link-target"><span>Español</span></a></li><li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://fa.wikipedia.org/wiki/%D9%88%DB%8C%DA%A9%DB%8C%E2%80%8C%D9%BE%D8%AF%DB%8C%D8%A7:%D9%BE%D8%A7%D9%84%D8%A7%DB%8C%D9%87_%D9%88%DB%8C%D8%B1%D8%A7%DB%8C%D8%B4" title="ویکی‌پدیا:پالایه ویرایش – Persian" lang="fa" hreflang="fa" data-title="ویکی‌پدیا:پالایه ویرایش" data-language-autonym="فارسی" data-language-local-name="Persian" class="interlanguage-link-target"><span>فارسی</span></a></li><li class="interlanguage-link interwiki-fi mw-list-item"><a href="https://fi.wikipedia.org/wiki/Wikipedia:V%C3%A4%C3%A4rink%C3%A4ytt%C3%B6suodatin" title="Wikipedia:Väärinkäyttösuodatin – Finnish" lang="fi" hreflang="fi" data-title="Wikipedia:Väärinkäyttösuodatin" data-language-autonym="Suomi" data-language-local-name="Finnish" class="interlanguage-link-target"><span>Suomi</span></a></li><li class="interlanguage-link interwiki-fr mw-list-item"><a href="https://fr.wikipedia.org/wiki/Wikip%C3%A9dia:AbuseFilter" title="Wikipédia:AbuseFilter – French" lang="fr" hreflang="fr" data-title="Wikipédia:AbuseFilter" data-language-autonym="Français" data-language-local-name="French" class="interlanguage-link-target"><span>Français</span></a></li><li class="interlanguage-link interwiki-gl mw-list-item"><a href="https://gl.wikipedia.org/wiki/Wikipedia:Filtro_de_abusos" title="Wikipedia:Filtro de abusos – Galician" lang="gl" hreflang="gl" data-title="Wikipedia:Filtro de abusos" data-language-autonym="Galego" data-language-local-name="Galician" class="interlanguage-link-target"><span>Galego</span></a></li><li class="interlanguage-link interwiki-he mw-list-item"><a href="https://he.wikipedia.org/wiki/%D7%95%D7%99%D7%A7%D7%99%D7%A4%D7%93%D7%99%D7%94:%D7%9E%D7%A1%D7%A0%D7%9F_%D7%94%D7%A9%D7%97%D7%AA%D7%95%D7%AA" title="ויקיפדיה:מסנן השחתות – Hebrew" lang="he" hreflang="he" data-title="ויקיפדיה:מסנן השחתות" data-language-autonym="עברית" data-language-local-name="Hebrew" class="interlanguage-link-target"><span>עברית</span></a></li><li class="interlanguage-link interwiki-hu mw-list-item"><a href="https://hu.wikipedia.org/wiki/Wikip%C3%A9dia:Vand%C3%A1lsz%C5%B1r%C5%91" title="Wikipédia:Vandálszűrő – Hungarian" lang="hu" hreflang="hu" data-title="Wikipédia:Vandálszűrő" data-language-autonym="Magyar" data-language-local-name="Hungarian" class="interlanguage-link-target"><span>Magyar</span></a></li><li class="interlanguage-link interwiki-id mw-list-item"><a href="https://id.wikipedia.org/wiki/Wikipedia:Filter_penyuntingan" title="Wikipedia:Filter penyuntingan – Indonesian" lang="id" hreflang="id" data-title="Wikipedia:Filter penyuntingan" data-language-autonym="Bahasa Indonesia" data-language-local-name="Indonesian" class="interlanguage-link-target"><span>Bahasa Indonesia</span></a></li><li class="interlanguage-link interwiki-it badge-Q70894304 mw-list-item" title=""><a href="https://it.wikipedia.org/wiki/Wikipedia:Filtro_anti_abusi" title="Wikipedia:Filtro anti abusi – Italian" lang="it" hreflang="it" data-title="Wikipedia:Filtro anti abusi" data-language-autonym="Italiano" data-language-local-name="Italian" class="interlanguage-link-target"><span>Italiano</span></a></li><li class="interlanguage-link interwiki-ja mw-list-item"><a href="https://ja.wikipedia.org/wiki/Wikipedia:%E7%B7%A8%E9%9B%86%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%83%BC" title="Wikipedia:編集フィルター – Japanese" lang="ja" hreflang="ja" data-title="Wikipedia:編集フィルター" data-language-autonym="日本語" data-language-local-name="Japanese" class="interlanguage-link-target"><span>日本語</span></a></li><li class="interlanguage-link interwiki-ko mw-list-item"><a href="https://ko.wikipedia.org/wiki/%EC%9C%84%ED%82%A4%EB%B0%B1%EA%B3%BC:%ED%8E%B8%EC%A7%91_%ED%95%84%ED%84%B0" title="위키백과:편집 필터 – Korean" lang="ko" hreflang="ko" data-title="위키백과:편집 필터" data-language-autonym="한국어" data-language-local-name="Korean" class="interlanguage-link-target"><span>한국어</span></a></li><li class="interlanguage-link interwiki-lt mw-list-item"><a href="https://lt.wikipedia.org/wiki/Vikipedija:Abuse_filter" title="Vikipedija:Abuse filter – Lithuanian" lang="lt" hreflang="lt" data-title="Vikipedija:Abuse filter" data-language-autonym="Lietuvių" data-language-local-name="Lithuanian" class="interlanguage-link-target"><span>Lietuvių</span></a></li><li class="interlanguage-link interwiki-mr mw-list-item"><a href="https://mr.wikipedia.org/wiki/%E0%A4%B5%E0%A4%BF%E0%A4%95%E0%A4%BF%E0%A4%AA%E0%A5%80%E0%A4%A1%E0%A4%BF%E0%A4%AF%E0%A4%BE:%E0%A4%B8%E0%A4%82%E0%A4%AA%E0%A4%BE%E0%A4%A6%E0%A4%A8_%E0%A4%97%E0%A4%BE%E0%A4%B3%E0%A4%A3%E0%A5%80" title="विकिपीडिया:संपादन गाळणी – Marathi" lang="mr" hreflang="mr" data-title="विकिपीडिया:संपादन गाळणी" data-language-autonym="मराठी" data-language-local-name="Marathi" class="interlanguage-link-target"><span>मराठी</span></a></li><li class="interlanguage-link interwiki-ne mw-list-item"><a href="https://ne.wikipedia.org/wiki/%E0%A4%B5%E0%A4%BF%E0%A4%95%E0%A4%BF%E0%A4%AA%E0%A4%BF%E0%A4%A1%E0%A4%BF%E0%A4%AF%E0%A4%BE:%E0%A4%A6%E0%A5%81%E0%A4%B0%E0%A5%81%E0%A4%AA%E0%A4%AF%E0%A5%8B%E0%A4%97_%E0%A4%9B%E0%A4%A8%E0%A5%8C%E0%A4%9F" title="विकिपिडिया:दुरुपयोग छनौट – Nepali" lang="ne" hreflang="ne" data-title="विकिपिडिया:दुरुपयोग छनौट" data-language-autonym="नेपाली" data-language-local-name="Nepali" class="interlanguage-link-target"><span>नेपाली</span></a></li><li class="interlanguage-link interwiki-nl mw-list-item"><a href="https://nl.wikipedia.org/wiki/Wikipedia:Misbruikfilter" title="Wikipedia:Misbruikfilter – Dutch" lang="nl" hreflang="nl" data-title="Wikipedia:Misbruikfilter" data-language-autonym="Nederlands" data-language-local-name="Dutch" class="interlanguage-link-target"><span>Nederlands</span></a></li><li class="interlanguage-link interwiki-no mw-list-item"><a href="https://no.wikipedia.org/wiki/Wikipedia:Redigeringsfilter" title="Wikipedia:Redigeringsfilter – Norwegian Bokmål" lang="nb" hreflang="nb" data-title="Wikipedia:Redigeringsfilter" data-language-autonym="Norsk bokmål" data-language-local-name="Norwegian Bokmål" class="interlanguage-link-target"><span>Norsk bokmål</span></a></li><li class="interlanguage-link interwiki-pl mw-list-item"><a href="https://pl.wikipedia.org/wiki/Wikipedia:Filtr_nadu%C5%BCy%C4%87" title="Wikipedia:Filtr nadużyć – Polish" lang="pl" hreflang="pl" data-title="Wikipedia:Filtr nadużyć" data-language-autonym="Polski" data-language-local-name="Polish" class="interlanguage-link-target"><span>Polski</span></a></li><li class="interlanguage-link interwiki-pt mw-list-item"><a href="https://pt.wikipedia.org/wiki/Wikip%C3%A9dia:Filtro_de_edi%C3%A7%C3%B5es" title="Wikipédia:Filtro de edições – Portuguese" lang="pt" hreflang="pt" data-title="Wikipédia:Filtro de edições" data-language-autonym="Português" data-language-local-name="Portuguese" class="interlanguage-link-target"><span>Português</span></a></li><li class="interlanguage-link interwiki-ro mw-list-item"><a href="https://ro.wikipedia.org/wiki/Wikipedia:Filtrarea_modific%C4%83rilor" title="Wikipedia:Filtrarea modificărilor – Romanian" lang="ro" hreflang="ro" data-title="Wikipedia:Filtrarea modificărilor" data-language-autonym="Română" data-language-local-name="Romanian" class="interlanguage-link-target"><span>Română</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%A4%D0%B8%D0%BB%D1%8C%D1%82%D1%80_%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D0%BA" title="Википедия:Фильтр правок – Russian" lang="ru" hreflang="ru" data-title="Википедия:Фильтр правок" data-language-autonym="Русский" data-language-local-name="Russian" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-sd mw-list-item"><a href="https://sd.wikipedia.org/wiki/%D9%88%DA%AA%D9%8A%D9%BE%D9%8A%DA%8A%D9%8A%D8%A7:Edit_filter" title="وڪيپيڊيا:Edit filter – Sindhi" lang="sd" hreflang="sd" data-title="وڪيپيڊيا:Edit filter" data-language-autonym="سنڌي" data-language-local-name="Sindhi" class="interlanguage-link-target"><span>سنڌي</span></a></li><li class="interlanguage-link interwiki-si mw-list-item"><a href="https://si.wikipedia.org/wiki/%E0%B7%80%E0%B7%92%E0%B6%9A%E0%B7%92%E0%B6%B4%E0%B7%93%E0%B6%A9%E0%B7%92%E0%B6%BA%E0%B7%8F:%E0%B7%83%E0%B6%82%E0%B7%83%E0%B7%8A%E0%B6%9A%E0%B6%BB%E0%B6%AB_%E0%B6%B4%E0%B7%99%E0%B6%BB%E0%B7%84%E0%B6%B1" title="විකිපීඩියා:සංස්කරණ පෙරහන – Sinhala" lang="si" hreflang="si" data-title="විකිපීඩියා:සංස්කරණ පෙරහන" data-language-autonym="සිංහල" data-language-local-name="Sinhala" class="interlanguage-link-target"><span>සිංහල</span></a></li><li class="interlanguage-link interwiki-simple mw-list-item"><a href="https://simple.wikipedia.org/wiki/Wikipedia:Change_filter" title="Wikipedia:Change filter – Simple English" lang="en-simple" hreflang="en-simple" data-title="Wikipedia:Change filter" data-language-autonym="Simple English" data-language-local-name="Simple English" class="interlanguage-link-target"><span>Simple English</span></a></li><li class="interlanguage-link interwiki-sk mw-list-item"><a href="https://sk.wikipedia.org/wiki/Wikip%C3%A9dia:Filter_%C3%BAprav" title="Wikipédia:Filter úprav – Slovak" lang="sk" hreflang="sk" data-title="Wikipédia:Filter úprav" data-language-autonym="Slovenčina" data-language-local-name="Slovak" class="interlanguage-link-target"><span>Slovenčina</span></a></li><li class="interlanguage-link interwiki-sl mw-list-item"><a href="https://sl.wikipedia.org/wiki/Wikipedija:Filter_zlorab" title="Wikipedija:Filter zlorab – Slovenian" lang="sl" hreflang="sl" data-title="Wikipedija:Filter zlorab" data-language-autonym="Slovenščina" data-language-local-name="Slovenian" class="interlanguage-link-target"><span>Slovenščina</span></a></li><li class="interlanguage-link interwiki-sv mw-list-item"><a href="https://sv.wikipedia.org/wiki/Wikipedia:Redigeringsfilter" title="Wikipedia:Redigeringsfilter – Swedish" lang="sv" hreflang="sv" data-title="Wikipedia:Redigeringsfilter" data-language-autonym="Svenska" data-language-local-name="Swedish" class="interlanguage-link-target"><span>Svenska</span></a></li><li class="interlanguage-link interwiki-th mw-list-item"><a href="https://th.wikipedia.org/wiki/%E0%B8%A7%E0%B8%B4%E0%B8%81%E0%B8%B4%E0%B8%9E%E0%B8%B5%E0%B9%80%E0%B8%94%E0%B8%B5%E0%B8%A2:%E0%B8%95%E0%B8%B1%E0%B8%A7%E0%B8%81%E0%B8%A3%E0%B8%AD%E0%B8%87%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B9%89%E0%B9%84%E0%B8%82" title="วิกิพีเดีย:ตัวกรองการแก้ไข – Thai" lang="th" hreflang="th" data-title="วิกิพีเดีย:ตัวกรองการแก้ไข" data-language-autonym="ไทย" data-language-local-name="Thai" class="interlanguage-link-target"><span>ไทย</span></a></li><li class="interlanguage-link interwiki-tr mw-list-item"><a href="https://tr.wikipedia.org/wiki/Vikipedi:De%C4%9Fi%C5%9Fiklik_s%C3%BCzgeci" title="Vikipedi:Değişiklik süzgeci – Turkish" lang="tr" hreflang="tr" data-title="Vikipedi:Değişiklik süzgeci" data-language-autonym="Türkçe" data-language-local-name="Turkish" class="interlanguage-link-target"><span>Türkçe</span></a></li><li class="interlanguage-link interwiki-uk mw-list-item"><a href="https://uk.wikipedia.org/wiki/%D0%92%D1%96%D0%BA%D1%96%D0%BF%D0%B5%D0%B4%D1%96%D1%8F:%D0%A4%D1%96%D0%BB%D1%8C%D1%82%D1%80_%D1%80%D0%B5%D0%B4%D0%B0%D0%B3%D1%83%D0%B2%D0%B0%D0%BD%D1%8C" title="Вікіпедія:Фільтр редагувань – Ukrainian" lang="uk" hreflang="uk" data-title="Вікіпедія:Фільтр редагувань" data-language-autonym="Українська" data-language-local-name="Ukrainian" class="interlanguage-link-target"><span>Українська</span></a></li><li class="interlanguage-link interwiki-ur mw-list-item"><a href="https://ur.wikipedia.org/wiki/%D9%88%DB%8C%DA%A9%DB%8C%D9%BE%DB%8C%DA%88%DB%8C%D8%A7:%D9%85%D9%82%D8%B7%D8%B1_%D8%BA%D9%84%D8%B7_%DA%A9%D8%A7%D8%B1%DB%8C" title="ویکیپیڈیا:مقطر غلط کاری – Urdu" lang="ur" hreflang="ur" data-title="ویکیپیڈیا:مقطر غلط کاری" data-language-autonym="اردو" data-language-local-name="Urdu" class="interlanguage-link-target"><span>اردو</span></a></li><li class="interlanguage-link interwiki-vi mw-list-item"><a href="https://vi.wikipedia.org/wiki/Wikipedia:B%E1%BB%99_l%E1%BB%8Dc_sai_ph%E1%BA%A1m" title="Wikipedia:Bộ lọc sai phạm – Vietnamese" lang="vi" hreflang="vi" data-title="Wikipedia:Bộ lọc sai phạm" data-language-autonym="Tiếng Việt" data-language-local-name="Vietnamese" class="interlanguage-link-target"><span>Tiếng Việt</span></a></li><li class="interlanguage-link interwiki-wuu mw-list-item"><a href="https://wuu.wikipedia.org/wiki/Wikipedia:%E9%98%B2%E6%BB%A5%E7%94%A8%E8%BF%87%E6%BB%A4%E5%99%A8" title="Wikipedia:防滥用过滤器 – Wu" lang="wuu" hreflang="wuu" data-title="Wikipedia:防滥用过滤器" data-language-autonym="吴语" data-language-local-name="Wu" class="interlanguage-link-target"><span>吴语</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/Wikipedia:%E9%98%B2%E6%BB%A5%E7%94%A8%E8%BF%87%E6%BB%A4%E5%99%A8" title="Wikipedia:防滥用过滤器 – Chinese" lang="zh" hreflang="zh" data-title="Wikipedia:防滥用过滤器" data-language-autonym="中文" data-language-local-name="Chinese" class="interlanguage-link-target"><span>中文</span></a></li><li class="interlanguage-link interwiki-zh-yue mw-list-item"><a href="https://zh-yue.wikipedia.org/wiki/Wikipedia:%E6%BF%AB%E7%94%A8%E9%81%8E%E6%BF%BE%E5%99%A8" title="Wikipedia:濫用過濾器 – Cantonese" lang="yue" hreflang="yue" data-title="Wikipedia:濫用過濾器" data-language-autonym="粵語" data-language-local-name="Cantonese" class="interlanguage-link-target"><span>粵語</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q4582485#sitelinks-wikipedia" title="Edit interlanguage links" class="wbc-editpage">Edit links</a></span></div> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/MediaWiki" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/mediawikiwiki.svg" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="MediaWiki" src="/static/images/mobile/copyright/mediawikiwiki-wordmark.svg" style="width: 7.5em; height: 1.125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Search MediaWiki [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search MediaWiki" aria-label="Search MediaWiki" autocapitalize="sentences" title="Search MediaWiki [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Personal tools"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-uls" class="mw-list-item active user-links-collapsible-item"><a data-mw="interface" href="#" class="uls-trigger cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet"><span class="vector-icon mw-ui-icon-wikimedia-language mw-ui-icon-wikimedia-wikimedia-language"></span> <span>English</span></a> </li> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page&#039;s font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Appearance" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Appearance</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/?utm_source=donate&amp;utm_medium=sidebar&amp;utm_campaign=spontaneous&amp;uselang=en" class=""><span>Donate</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:CreateAccount&amp;returnto=Extension%3AAbuseFilter" title="You are encouraged to create an account and log in; however, it is not mandatory" class=""><span>Create account</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:UserLogin&amp;returnto=Extension%3AAbuseFilter" title="You are encouraged to log in; however, it is not mandatory [o]" accesskey="o" class=""><span>Log in</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="More options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Personal tools" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Personal tools</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="User menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/?utm_source=donate&amp;utm_medium=sidebar&amp;utm_campaign=spontaneous&amp;uselang=en"><span>Donate</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&amp;returnto=Extension%3AAbuseFilter" title="You are encouraged to create an account and log in; however, it is not mandatory"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Create account</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:UserLogin&amp;returnto=Extension%3AAbuseFilter" title="You are encouraged to log in; however, it is not mandatory [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Log in</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages for logged out editors <a href="/wiki/Help:Introduction" aria-label="Learn more about editing"><span>learn more</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n"><span>Talk</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Contents" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Contents</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">hide</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">Beginning</div> </a> </li> <li id="toc-Installation" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Installation"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>Installation</span> </div> </a> <ul id="toc-Installation-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Configuration" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Configuration"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Configuration</span> </div> </a> <button aria-controls="toc-Configuration-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Configuration subsection</span> </button> <ul id="toc-Configuration-sublist" class="vector-toc-list"> <li id="toc-User_rights" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#User_rights"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.1</span> <span>User rights</span> </div> </a> <ul id="toc-User_rights-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Parameters" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Parameters"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.2</span> <span>Parameters</span> </div> </a> <ul id="toc-Parameters-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Emergency_throttling" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Emergency_throttling"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.3</span> <span>Emergency throttling</span> </div> </a> <ul id="toc-Emergency_throttling-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Creating_and_managing_filters" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Creating_and_managing_filters"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Creating and managing filters</span> </div> </a> <ul id="toc-Creating_and_managing_filters-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-API" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#API"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>API</span> </div> </a> <button aria-controls="toc-API-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle API subsection</span> </button> <ul id="toc-API-sublist" class="vector-toc-list"> <li id="toc-list_=_abusefilters" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#list_=_abusefilters"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.1</span> <span>list = abusefilters</span> </div> </a> <ul id="toc-list_=_abusefilters-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-list_=_abuselog" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#list_=_abuselog"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.2</span> <span>list = abuselog</span> </div> </a> <ul id="toc-list_=_abuselog-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Possible_errors" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Possible_errors"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>Possible errors</span> </div> </a> <ul id="toc-Possible_errors-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Integration_with_other_extensions" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Integration_with_other_extensions"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>Integration with other extensions</span> </div> </a> <button aria-controls="toc-Integration_with_other_extensions-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Integration with other extensions subsection</span> </button> <ul id="toc-Integration_with_other_extensions-sublist" class="vector-toc-list"> <li id="toc-Adding_variables_for_filtering" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Adding_variables_for_filtering"> <div class="vector-toc-text"> <span class="vector-toc-numb">6.1</span> <span>Adding variables for filtering</span> </div> </a> <ul id="toc-Adding_variables_for_filtering-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Adding_custom_actions" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Adding_custom_actions"> <div class="vector-toc-text"> <span class="vector-toc-numb">6.2</span> <span>Adding custom actions</span> </div> </a> <ul id="toc-Adding_custom_actions-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Adding_rule_groups" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Adding_rule_groups"> <div class="vector-toc-text"> <span class="vector-toc-numb">6.3</span> <span>Adding rule groups</span> </div> </a> <ul id="toc-Adding_rule_groups-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-See_also" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#See_also"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>See also</span> </div> </a> <ul id="toc-See_also-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-namespace">Extension</span><span class="mw-page-title-separator">:</span><span class="mw-page-title-main">AbuseFilter</span></h1> <div class="mw-indicators"> <div id="mw-indicator-phabricator-project" class="mw-indicator"><div class="mw-parser-output"><div class="mw-parser-output"><style data-mw-deduplicate="TemplateStyles:r6605561">.mw-parser-output .tpl-badge{background-color:var(--background-color-progressive-subtle,#eaf3ff);color:var(--color-base,#202122);border-radius:10px;display:inline-block;font-size:90%;padding:5px 8px}</style><div class="tpl-badge"><a href="/wiki/Special:MyLanguage/Phabricator" title="Special:MyLanguage/Phabricator">Issue tracker</a>: <a href="https://phabricator.wikimedia.org/tag/abusefilter/" class="extiw" title="phab:tag/abusefilter/"><b>#AbuseFilter</b></a></div></div></div></div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Namespaces"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-extension" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Extension:AbuseFilter" title="View the subject page [c]" accesskey="c"><span>Extension</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Extension_talk:AbuseFilter" rel="discussion" title="Discussion about the content page [t]" accesskey="t"><span>Discussion</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Change language variant" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Views"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Extension:AbuseFilter"><span>Read</span></a></li><li id="ca-viewsource" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Extension:AbuseFilter&amp;action=edit" title="This page is protected.&#10;You can view its source [e]" accesskey="e"><span>View source</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Extension:AbuseFilter&amp;action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Tools" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Tools</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Tools</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">hide</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/Extension:AbuseFilter"><span>Read</span></a></li><li id="ca-more-viewsource" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Extension:AbuseFilter&amp;action=edit"><span>View source</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Extension:AbuseFilter&amp;action=history"><span>View history</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> General </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/Extension:AbuseFilter" title="A list of all wiki pages that link here [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/Extension:AbuseFilter" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-upload" class="mw-list-item"><a href="//commons.wikimedia.org/wiki/Special:UploadWizard" title="Upload files [u]" accesskey="u"><span>Upload file</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q"><span>Special pages</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Extension:AbuseFilter&amp;oldid=6853405" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Extension:AbuseFilter&amp;action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Special:CiteThisPage&amp;page=Extension%3AAbuseFilter&amp;id=6853405&amp;wpFormIdentifier=titleform" title="Information on how to cite this page"><span>Cite this page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:UrlShortener&amp;url=https%3A%2F%2Fwww.mediawiki.org%2Fwiki%2FExtension%3AAbuseFilter"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&amp;url=https%3A%2F%2Fwww.mediawiki.org%2Fwiki%2FExtension%3AAbuseFilter"><span>Download QR code</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Print/export </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-create_a_book" class="mw-list-item"><a href="/w/index.php?title=Special:Book&amp;bookcmd=book_creator&amp;referer=Extension%3AAbuseFilter"><span>Create a book</span></a></li><li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Special:DownloadAsPdf&amp;page=Extension%3AAbuseFilter&amp;action=show-download-screen"><span>Download as PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=Extension:AbuseFilter&amp;printable=yes" title="Printable version of this page [p]" accesskey="p"><span>Printable version</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> In other projects </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="wb-otherproject-link wb-otherproject-commons mw-list-item"><a href="https://commons.wikimedia.org/wiki/Commons:Abuse_filter" hreflang="en"><span>Wikimedia Commons</span></a></li><li class="wb-otherproject-link wb-otherproject-meta mw-list-item"><a href="https://meta.wikimedia.org/wiki/AbuseFilter" hreflang="en"><span>Meta-Wiki</span></a></li><li class="wb-otherproject-link wb-otherproject-wikibooks mw-list-item"><a href="https://en.wikibooks.org/wiki/Wikibooks:Edit_filter" hreflang="en"><span>Wikibooks</span></a></li><li class="wb-otherproject-link wb-otherproject-wikidata mw-list-item"><a href="https://www.wikidata.org/wiki/Wikidata:Abuse_filter" hreflang="en"><span>Wikidata</span></a></li><li class="wb-otherproject-link wb-otherproject-wikipedia mw-list-item"><a href="https://en.wikipedia.org/wiki/Wikipedia:Edit_filter" hreflang="en"><span>Wikipedia</span></a></li><li class="wb-otherproject-link wb-otherproject-wikivoyage mw-list-item"><a href="https://en.wikivoyage.org/wiki/Wikivoyage:Abuse_filters" hreflang="en"><span>Wikivoyage</span></a></li><li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q4582485" title="Link to connected data repository item [g]" accesskey="g"><span>Wikidata item</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Appearance</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">hide</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div id="siteSub" class="noprint">From mediawiki.org</div> </div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-pt-translate-header noprint nomobile" dir="ltr" lang="en"><a href="/w/index.php?title=Special:Translate&amp;group=page-Extension%3AAbuseFilter&amp;action=page&amp;filter=&amp;action_source=translate_page" title="Special:Translate">Translate this page</a></div><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><div class="mw-pt-languages noprint navigation-not-searchable" lang="en" dir="ltr"><div class="mw-pt-languages-label">Languages:</div><ul class="mw-pt-languages-list"><li><a href="/wiki/Extension:AbuseFilter/id" class="mw-pt-progress mw-pt-progress--low" title="Extension:AbuseFilter/id (9% translated)" lang="id" dir="ltr">Bahasa Indonesia</a></li> <li><a href="/wiki/Extension:AbuseFilter/de" class="mw-pt-progress mw-pt-progress--high" title="Erweiterung:Missbrauchsfilter (84% translated)" lang="de" dir="ltr">Deutsch</a></li> <li><a href="/wiki/Extension:AbuseFilter/de-formal" class="mw-pt-progress mw-pt-progress--med" title="Erweiterung:Missbrauchsfilter (17% translated)" lang="de-x-formal" dir="ltr">Deutsch (Sie-Form)</a></li> <li><span class="mw-pt-languages-ui mw-pt-languages-selected mw-pt-progress mw-pt-progress--complete" lang="en" dir="ltr">English</span></li> <li><a href="/wiki/Extension:AbuseFilter/nl" class="mw-pt-progress mw-pt-progress--complete" title="Extension:AbuseFilter/nl (100% translated)" lang="nl" dir="ltr">Nederlands</a></li> <li><a href="/wiki/Extension:AbuseFilter/tr" class="mw-pt-progress mw-pt-progress--high" title="Extension:AbuseFilter (82% translated)" lang="tr" dir="ltr">Türkçe</a></li> <li><a href="/wiki/Extension:AbuseFilter/diq" class="mw-pt-progress mw-pt-progress--low" title="Extension:AbuseFilter/diq (3% translated)" lang="diq" dir="ltr">Zazaki</a></li> <li><a href="/wiki/Extension:AbuseFilter/ca" class="mw-pt-progress mw-pt-progress--low" title="Extensió:AbuseFilter (9% translated)" lang="ca" dir="ltr">català</a></li> <li><a href="/wiki/Extension:AbuseFilter/da" class="mw-pt-progress mw-pt-progress--med" title="Udvidelse:Misbrugfilter (19% translated)" lang="da" dir="ltr">dansk</a></li> <li><a href="/wiki/Extension:AbuseFilter/es" class="mw-pt-progress mw-pt-progress--high" title="Extensión:AbuseFilter (83% translated)" lang="es" dir="ltr">español</a></li> <li><a href="/wiki/Extension:AbuseFilter/fr" class="mw-pt-progress mw-pt-progress--high" title="Extension:AbuseFilter (84% translated)" lang="fr" dir="ltr">français</a></li> <li><a href="/wiki/Extension:AbuseFilter/gl" class="mw-pt-progress mw-pt-progress--med" title="Extensión:AbuseFilter (36% translated)" lang="gl" dir="ltr">galego</a></li> <li><a href="/wiki/Extension:AbuseFilter/it" class="mw-pt-progress mw-pt-progress--low" title="Estensione:AbuseFilter (3% translated)" lang="it" dir="ltr">italiano</a></li> <li><a href="/wiki/Extension:AbuseFilter/hu" class="mw-pt-progress mw-pt-progress--med" title="Kiterjesztés:AbuseFilter (26% translated)" lang="hu" dir="ltr">magyar</a></li> <li><a href="/wiki/Extension:AbuseFilter/pl" class="mw-pt-progress mw-pt-progress--med" title="Rozszerzenie:Filtr nadużyć (45% translated)" lang="pl" dir="ltr">polski</a></li> <li><a href="/wiki/Extension:AbuseFilter/pt" class="mw-pt-progress mw-pt-progress--med" title="Extension:Filtro de Abuso (22% translated)" lang="pt" dir="ltr">português</a></li> <li><a href="/wiki/Extension:AbuseFilter/pt-br" class="mw-pt-progress mw-pt-progress--high" title="Extensão:Filtro de abusos (82% translated)" lang="pt-BR" dir="ltr">português do Brasil</a></li> <li><a href="/wiki/Extension:AbuseFilter/ro" class="mw-pt-progress mw-pt-progress--med" title="Extensie:AbuseFilter (40% translated)" lang="ro" dir="ltr">română</a></li> <li><a href="/wiki/Extension:AbuseFilter/scn" class="mw-pt-progress mw-pt-progress--low" title="Estinzioni:AbuseFilter (6% translated)" lang="scn" dir="ltr">sicilianu</a></li> <li><a href="/wiki/Extension:AbuseFilter/cs" class="mw-pt-progress mw-pt-progress--high" title="Rozšíření:AbuseFilter (83% translated)" lang="cs" dir="ltr">čeština</a></li> <li><a href="/wiki/Extension:AbuseFilter/bg" class="mw-pt-progress mw-pt-progress--med" title="Extension:AbuseFilter/bg (36% translated)" lang="bg" dir="ltr">български</a></li> <li><a href="/wiki/Extension:AbuseFilter/ru" class="mw-pt-progress mw-pt-progress--med" title="Расширение: AbuseFilter (62% translated)" lang="ru" dir="ltr">русский</a></li> <li><a href="/wiki/Extension:AbuseFilter/uk" class="mw-pt-progress mw-pt-progress--low" title="Розширення:Фільтр зловживань (2% translated)" lang="uk" dir="ltr">українська</a></li> <li><a href="/wiki/Extension:AbuseFilter/he" class="mw-pt-progress mw-pt-progress--med" title="הרחבה:מסנן ההשחתות (16% translated)" lang="he" dir="rtl">עברית</a></li> <li><a href="/wiki/Extension:AbuseFilter/ar" class="mw-pt-progress mw-pt-progress--med" title="Extension:مرشح الإساءة (69% translated)" lang="ar" dir="rtl">العربية</a></li> <li><a href="/wiki/Extension:AbuseFilter/sd" class="mw-pt-progress mw-pt-progress--low" title="Extension:بدسلوڪي ڇاڻي (8% translated)" lang="sd" dir="rtl">سنڌي</a></li> <li><a href="/wiki/Extension:AbuseFilter/fa" class="mw-pt-progress mw-pt-progress--low" title="Extension:AbuseFilter/fa (9% translated)" lang="fa" dir="rtl">فارسی</a></li> <li><a href="/wiki/Extension:AbuseFilter/hi" class="mw-pt-progress mw-pt-progress--high" title="Extension:दुरुपयोग फ़िल्टर (83% translated)" lang="hi" dir="ltr">हिन्दी</a></li> <li><a href="/wiki/Extension:AbuseFilter/bn" class="mw-pt-progress mw-pt-progress--low" title="এক্সটেনশন:অপব্যবহার ছাঁকনি (3% translated)" lang="bn" dir="ltr">বাংলা</a></li> <li><a href="/wiki/Extension:AbuseFilter/th" class="mw-pt-progress mw-pt-progress--high" title="ส่วนขยาย:AbuseFilter (82% translated)" lang="th" dir="ltr">ไทย</a></li> <li><a href="/wiki/Extension:AbuseFilter/km" class="mw-pt-progress mw-pt-progress--low" title="Extension:AbuseFilter/km (0% translated)" lang="km" dir="ltr">ភាសាខ្មែរ</a></li> <li><a href="/wiki/Extension:AbuseFilter/zh" class="mw-pt-progress mw-pt-progress--high" title="Extension:AbuseFilter (86% translated)" lang="zh" dir="ltr">中文</a></li> <li><a href="/wiki/Extension:AbuseFilter/ja" class="mw-pt-progress mw-pt-progress--high" title="Extension:AbuseFilter (83% translated)" lang="ja" dir="ltr">日本語</a></li> <li><a href="/wiki/Extension:AbuseFilter/yue" class="mw-pt-progress mw-pt-progress--low" title="擴充功能:AbuseFilter (5% translated)" lang="yue" dir="ltr">粵語</a></li> <li><a href="/wiki/Extension:AbuseFilter/ko" class="mw-pt-progress mw-pt-progress--med" title="확장기능:편집필터 (23% translated)" lang="ko" dir="ltr">한국어</a></li></ul></div> <style data-mw-deduplicate="TemplateStyles:r6651107">.mw-parser-output .note{background-position:left 7px top 50%;padding:0.5em 0.5em 0.5em 40px;margin:0.5em 0;overflow:hidden;background-color:#f8f9fa;color:#333;background-repeat:no-repeat;border:1px solid #ddd}.mw-parser-output .note-inline{display:inline-block;vertical-align:middle}.mw-parser-output .note-info{background-color:#eaf3ff;color:#333;background-image:url("https://upload.wikimedia.org/wikipedia/commons/e/ec/OOjs_UI_icon_information-progressive.svg");background-size:25px;border-color:#a3caff;padding-left:40px;min-height:25px}.mw-parser-output .note-reminder{background-color:#fff9ea;color:#333;background-image:url("https://upload.wikimedia.org/wikipedia/commons/a/a8/OOjs_UI_icon_lightbulb-yellow.svg");background-size:25px;border-color:#fc3;min-height:25px}.mw-parser-output .note-warn{background-color:#fff9ea;color:#333;background-image:url("https://upload.wikimedia.org/wikipedia/commons/3/3b/OOjs_UI_icon_alert-warning.svg");background-size:25px;border-color:#fc3;min-height:25px}.mw-parser-output .note-error{background-color:#fee7e6;color:#333;background-image:url("https://upload.wikimedia.org/wikipedia/commons/b/bf/OOjs_UI_icon_notice-destructive.svg");background-size:25px;border-color:#c33;min-height:25px}@media screen{html.skin-theme-clientpref-night .mw-parser-output .note{background-color:transparent;color:inherit}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .note{background-color:transparent;color:inherit}}</style><div role="note" class="note note-info">This extension <a href="/wiki/Special:MyLanguage/MediaWiki_1.38#Bundled_extensions" title="Special:MyLanguage/MediaWiki 1.38">comes with MediaWiki 1.38</a> and above. Thus you do not have to download it again. However, you still need to follow the other instructions provided.</div> <style data-mw-deduplicate="TemplateStyles:r6651102">.mw-parser-output .infobox{box-sizing:border-box;border:2px solid var(--border-color-base,#a2a9b1);width:280px;border-collapse:collapse;border-spacing:0;background-color:white;color:#333;clear:right;float:right;margin:0 0 0.5em 0.5em}.mw-parser-output .infobox-rtl{clear:left;float:left;margin:0 0.5em 0.5em 0}.mw-parser-output .infobox th{text-align:left;padding:0.2em 0.5em;vertical-align:top}.mw-parser-output .infobox-rtl th{text-align:right}@media(max-width:719px){body.mediawiki .mw-parser-output .infobox{float:none;clear:both;width:100%;margin:0 0 .5em 0}}.mw-parser-output .infobox td{border:none;padding:0.2em 0.5em;vertical-align:top}.mw-parser-output .infobox-header{background-color:#a2a9b1;color:#FFF;text-align:left}.mw-parser-output .infobox-header a{color:#FFF}.mw-parser-output .infobox-header td,.mw-parser-output .infobox-header th{padding:0.5em 0.5em}.mw-parser-output .infobox-header img{padding:0 0.2em 0 0.5em}@media screen{html.skin-theme-clientpref-night .mw-parser-output .infobox{background-color:inherit;color:inherit}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .infobox{background-color:inherit;color:inherit}}</style><style data-mw-deduplicate="TemplateStyles:r5577029">.mw-parser-output .ext-infobox>tbody>tr>td:first-child{vertical-align:top}.mw-parser-output .ext-infobox>tbody>tr>td abbr{white-space:nowrap}.mw-parser-output .ext-infobox .mw-collapsible-header,.mw-parser-output .ext-infobox .mw-collapsible-toggle{font-weight:bold}.mw-parser-output .ext-infobox .mw-collapsible-content{margin-top:.2em;padding-top:.2em}.mw-parser-output .ext-infobox-header>th,.mw-parser-output .ext-infobox caption,.mw-parser-output .ext-infobox-image,.mw-parser-output .ext-infobox-translate{text-align:center}.mw-parser-output .ext-infobox-name{font-size:130%;line-height:100%}.mw-parser-output .ext-infobox-type{min-width:7em}</style><style data-mw-deduplicate="TemplateStyles:r6424453">.mw-parser-output .ext-status-unstable,.mw-parser-output .ext-status-unstable td{border-color:#d33}.mw-parser-output .ext-status-unstable .ext-infobox-header{background-color:#d33;color:#fff}.mw-parser-output .ext-status-unstable .ext-infobox-header a{color:#fff}.mw-parser-output .ext-status-experimental,.mw-parser-output .ext-status-experimental td{border-color:#ff4500}.mw-parser-output .ext-status-experimental .ext-infobox-header{background-color:#ff4500;color:#FFF}.mw-parser-output .ext-status-experimental .ext-infobox-header a{color:#FFF}.mw-parser-output .ext-status-beta,.mw-parser-output .ext-status-beta td{border-color:#fc3}.mw-parser-output .ext-status-beta .ext-infobox-header{color:#000;background-color:#fc3}.mw-parser-output .ext-status-beta .ext-infobox-header a{color:#000}.mw-parser-output .ext-status-stable,.mw-parser-output .ext-status-stable td{border-color:#00af89}.mw-parser-output .ext-status-stable .ext-infobox-header{background-color:#068468;color:#FFF}.mw-parser-output .ext-status-stable .ext-infobox-header a{color:#fff}.mw-parser-output .ext-status-unmaintained,.mw-parser-output .ext-status-unmaintained td{border-color:#ac6600}.mw-parser-output .ext-status-unmaintained .ext-infobox-header{background-color:#ac6600;color:#FFF}.mw-parser-output .ext-status-unmaintained .ext-infobox-header a{color:#fff}</style> <table class="infobox infobox-ltr ext-infobox ext-status-stable"> <caption><b><a href="/wiki/Special:MyLanguage/Manual:Extensions" title="Special:MyLanguage/Manual:Extensions">MediaWiki extensions manual</a><span style="display:none"><a href="/wiki/Manual:Extensions" title="Manual:Extensions"> </a></span></b></caption> <tbody><tr class="infobox-header ext-infobox-header notheme"> <th colspan="2"><figure class="mw-halign-left" typeof="mw:File"><a href="/wiki/Special:MyLanguage/Template:Extension#Content" title="Special:MyLanguage/Template:Extension"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/1/1b/OOjs_UI_icon_advanced-invert.svg/40px-OOjs_UI_icon_advanced-invert.svg.png" decoding="async" width="40" height="40" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/1/1b/OOjs_UI_icon_advanced-invert.svg/60px-OOjs_UI_icon_advanced-invert.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/1/1b/OOjs_UI_icon_advanced-invert.svg/80px-OOjs_UI_icon_advanced-invert.svg.png 2x" data-file-width="20" data-file-height="20" /></a><figcaption></figcaption></figure> <span class="ext-infobox-name">AbuseFilter</span><br /> <a href="/wiki/Special:MyLanguage/Extension_status" title="Special:MyLanguage/Extension status">Release status:</a><span style="display:none"><a href="/wiki/Extension_status" title="Extension status"> </a></span> stable</th> </tr> <tr> <td colspan="2" class="ext-infobox-image"><span typeof="mw:File"><a href="/wiki/File:AbuseFilter-Management.png" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/f/f2/AbuseFilter-Management.png/300px-AbuseFilter-Management.png" decoding="async" width="300" height="128" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/f/f2/AbuseFilter-Management.png/450px-AbuseFilter-Management.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/f/f2/AbuseFilter-Management.png/600px-AbuseFilter-Management.png 2x" data-file-width="3454" data-file-height="1479" /></a></span></td> </tr> <tr> <td class="ext-infobox-type"><b><a href="/wiki/Special:MyLanguage/Template:Extension#type" title="Special:MyLanguage/Template:Extension">Implementation</a><span style="display:none"><a href="/wiki/Template:Extension#type" title="Template:Extension"> </a></span></b></td> <td><a href="/wiki/Special:MyLanguage/Manual:Security" title="Special:MyLanguage/Manual:Security">User activity</a><span style="display:none"><a href="/wiki/Manual:Security" title="Manual:Security"> </a></span>, <a href="/wiki/Special:MyLanguage/Manual:Special_pages" title="Special:MyLanguage/Manual:Special pages">Special page</a><span style="display:none"><a href="/wiki/Manual:Special_pages" title="Manual:Special pages"> </a></span>, <a href="/wiki/Special:MyLanguage/API:Action_API" title="Special:MyLanguage/API:Action API">API</a><span style="display:none"><a href="/wiki/API:Action_API" class="mw-redirect" title="API:Action API"> </a></span> </td></tr><tr> <td><b><a href="/wiki/Special:MyLanguage/Template:Extension#description" title="Special:MyLanguage/Template:Extension">Description</a><span style="display:none"><a href="/wiki/Template:Extension#description" title="Template:Extension"> </a></span></b></td> <td>Allows specific behavior-based restrictions to be placed on wiki activity</td> </tr> <tr> <td><b><a href="/wiki/Special:MyLanguage/Template:Extension#username" title="Special:MyLanguage/Template:Extension">Author(s)</a><span style="display:none"><a href="/wiki/Template:Extension#username" title="Template:Extension"> </a></span></b></td> <td> <ul><li><a href="/wiki/User:Werdna" title="User:Werdna">Andrew Garrett</a></li> <li><a href="/wiki/User:Daimona_Eaytoy" title="User:Daimona Eaytoy">Daimona Eaytoy</a></li> <li>Marius Hoch</li> <li>River Tarnell</li> <li>Victor Vasiliev</li></ul></td> </tr> <tr> <td><b><a href="/wiki/Special:MyLanguage/Compatibility#mediawiki_extensions" title="Special:MyLanguage/Compatibility">Compatibility policy</a><span style="display:none"><a href="/wiki/Compatibility#mediawiki_extensions" title="Compatibility"> </a></span></b></td> <td>Snapshots releases along with MediaWiki. Master is not backward compatible.</td> </tr> <tr> <td><a href="/wiki/Special:MyLanguage/Template:Extension#mediawiki" title="Special:MyLanguage/Template:Extension"><b>MediaWiki</b></a><span style="display:none"><a href="/wiki/Template:Extension#mediawiki" title="Template:Extension"> </a></span></td> <td>&gt;= 1.43.0</td> </tr> <tr> <td><a href="/wiki/Special:MyLanguage/Template:Extension#needs-updatephp" title="Special:MyLanguage/Template:Extension"><abbr title="&#39;php update.php&#39; needed after installation"><b>Database changes</b></abbr></a><span style="display:none"><a href="/wiki/Template:Extension#needs-updatephp" title="Template:Extension"> </a></span></td> <td>Yes</td> </tr> <tr> <td><a href="/wiki/Special:MyLanguage/Composer" title="Special:MyLanguage/Composer"><abbr title="Supports &#39;Composer&#39; for installation"><b>Composer</b></abbr></a><span style="display:none"><a href="/wiki/Composer" title="Composer"> </a></span></td> <td><a rel="nofollow" class="external text" href="https://packagist.org/packages/mediawiki/abuse-filter">mediawiki/abuse-filter</a></td> </tr> <tr> <td><b><a href="/wiki/Special:MyLanguage/Template:Extension#table1" title="Special:MyLanguage/Template:Extension">Tables</a><span style="display:none"><a href="/wiki/Template:Extension#table1" title="Template:Extension"> </a></span></b></td> <td><a href="/wiki/Special:MyLanguage/Extension:AbuseFilter/abuse_filter_table" title="Special:MyLanguage/Extension:AbuseFilter/abuse filter table">abuse_filter</a><span style="display:none"><a href="/wiki/Extension:AbuseFilter/abuse_filter_table" title="Extension:AbuseFilter/abuse filter table"> </a></span><br /><a href="/wiki/Special:MyLanguage/Extension:AbuseFilter/abuse_filter_action_table" title="Special:MyLanguage/Extension:AbuseFilter/abuse filter action table">abuse_filter_action</a><span style="display:none"><a href="/wiki/Extension:AbuseFilter/abuse_filter_action_table" title="Extension:AbuseFilter/abuse filter action table"> </a></span><br /><a href="/wiki/Special:MyLanguage/Extension:AbuseFilter/abuse_filter_history_table" title="Special:MyLanguage/Extension:AbuseFilter/abuse filter history table">abuse_filter_history</a><span style="display:none"><a href="/wiki/Extension:AbuseFilter/abuse_filter_history_table" title="Extension:AbuseFilter/abuse filter history table"> </a></span><br /><a href="/wiki/Special:MyLanguage/Extension:AbuseFilter/abuse_filter_log_table" title="Special:MyLanguage/Extension:AbuseFilter/abuse filter log table">abuse_filter_log</a><span style="display:none"><a href="/wiki/Extension:AbuseFilter/abuse_filter_log_table" title="Extension:AbuseFilter/abuse filter log table"> </a></span></td> </tr> <tr> <td><b><a href="/wiki/Special:MyLanguage/Template:Extension#license" title="Special:MyLanguage/Template:Extension">License</a><span style="display:none"><a href="/wiki/Template:Extension#license" title="Template:Extension"> </a></span></b></td> <td><a rel="nofollow" class="external text" href="//www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html">GNU General Public License 2.0 or later</a></td> </tr><tr> <td><b>Download</b></td> <td><div class="plainlinks"><a href="/wiki/Special:ExtensionDistributor/AbuseFilter" title="Special:ExtensionDistributor/AbuseFilter"><b>Download extension</b></a> <br />Git <sup>[<a href="/wiki/Special:MyLanguage/Download_from_Git" title="Special:MyLanguage/Download from Git">?</a>]</sup>: <ul><li><span class="plainlinks"><a rel="nofollow" class="external text" href="https://github.com/wikimedia/mediawiki-extensions-AbuseFilter/archive/master.tar.gz">Download Git master</a></span></li> <li><a href="https://gerrit.wikimedia.org/g/mediawiki/extensions/AbuseFilter" class="extiw" title="git:mediawiki/extensions/AbuseFilter">browse&#160;repository</a> (<a href="https://phabricator.wikimedia.org/diffusion/EABF" class="extiw" title="phab:diffusion/EABF">Phabricator</a> ·&#160;<a rel="nofollow" class="external text" href="https://github.com/wikimedia/mediawiki-extensions-AbuseFilter">GitHub</a>)</li> <li><a href="https://gerrit.wikimedia.org/g/mediawiki/extensions/AbuseFilter/%2Blog/master" class="extiw" title="git:mediawiki/extensions/AbuseFilter/+log/master">commit&#160;history</a></li> <li><a rel="nofollow" class="external text" href="https://github.com/wikimedia/mediawiki-extensions-AbuseFilter/graphs/contributors">repository contributors (GitHub)</a></li> <li><a href="https://gerrit.wikimedia.org/r/q/project:mediawiki/extensions/AbuseFilter" class="extiw" title="gerrit:q/project:mediawiki/extensions/AbuseFilter">code review</a></li></ul></div></td> </tr> <tr> <td class="mw-collapsible mw-collapsed" colspan="2"> <div class="mw-collapsible-header"><a href="/wiki/Special:MyLanguage/Template:Extension#parameters" title="Special:MyLanguage/Template:Extension">Parameters</a><span style="display:none"><a href="/wiki/Template:Extension#parameters" title="Template:Extension"> </a></span></div> <div class="mw-collapsible-content"> <ul><li><span class="configvariable" title="The maximum number of &#39;conditions&#39; that can be used each time the filters are run against a change. (More complex filters require more &#39;conditions&#39;).">$wgAbuseFilterConditionLimit</span></li> <li><span class="configvariable" title="Size of the range blocked by &#39;rangeblock&#39; action.">$wgAbuseFilterRangeBlockSize</span></li> <li><span class="configvariable" title="Old standard block duration for anonymous users, $wgAbuseFilterBlockDuration will be used if null. Kept for backward compatibility after T32024.">$wgAbuseFilterAnonBlockDuration</span></li> <li><span class="configvariable" title="Age used as cutoff when purging old IP log data, defaults to 3 months. Used by maintenance script purgeOldLogIPData.php">$wgAbuseFilterLogIPMaxAge</span></li> <li><span class="configvariable" title="Name of a database where global abuse filters will be stored in. To use a DB with prefixed tables, set this to &quot;&#123;$databaseName&#125;-&#123;$prefix&#125;&quot;.">$wgAbuseFilterCentralDB</span></li> <li><span class="configvariable" title="Default warning messages, per filter group">$wgAbuseFilterDefaultWarningMessage</span></li> <li><span class="configvariable" title="See description for AbuseFilterEmergencyDisableThreshold">$wgAbuseFilterEmergencyDisableAge</span></li> <li><span class="configvariable" title="Temporary config value to disable Special:BlockedExternalDomains">$wgAbuseFilterEnableBlockedExternalDomain</span></li> <li><span class="configvariable" title="Do users need &#39;abusefilter-modify-restricted&#39; user right as well as &#39;abusefilter-modify&#39; in order to create or modify filters which carry out this action? Array like &#91;action name =&gt; is restricted?&#93;">$wgAbuseFilterActionRestrictions</span></li> <li><span class="configvariable" title="Array of enabled actions in the form &#91;action name =&gt; is enabled?&#93;. At the end of setup, false values will be filtered out">$wgAbuseFilterActions</span></li> <li><span class="configvariable" title="Array of variables that are be considered protected (limited access) and require the abusefilter-access-protected-vars right to use/view.">$wgAbuseFilterProtectedVariables</span></li> <li><span class="configvariable" title="Whether to include IP in the abuse_filter_log">$wgAbuseFilterLogIP</span></li> <li><span class="configvariable" title="Whether users are forced to provide a reason for accessing private information from a filter log entry.">$wgAbuseFilterPrivateDetailsForceReason</span></li> <li><span class="configvariable" title="See description for AbuseFilterEmergencyDisableThreshold">$wgAbuseFilterEmergencyDisableCount</span></li> <li><span class="configvariable" title="Whether accessing private information from a filter log entry is logged.">$wgAbuseFilterLogPrivateDetailsAccess</span></li> <li><span class="configvariable" title="Runtime in milliseconds before a filter is considered slow.">$wgAbuseFilterSlowFilterRuntimeLimit</span></li> <li><span class="configvariable" title="Disable potentially dangerous actions (AbuseFilterRestrictions) of a filter if it matches more than X actions, constituting more than Y% (e.g. 0.05 = 5%) of the last Z actions, and the filter has been modified in the last S seconds. X is AbuseFilterEmergencyDisableCount, Y is AbuseFilterEmergencyDisableThreshold, S is AbuseFilterEmergencyDisableAge and Z is the number of analyzed actions since the filter was modified.">$wgAbuseFilterEmergencyDisableThreshold</span></li> <li><span class="configvariable" title="An array of actions which, if set on a global filter, will not be used for local hits of such filter (not in the central wiki). The array is &#91; action =&gt; will be disabled? &#93;. NOTE: Locally disabling throttle or warn will *not* disable the remaining actions.">$wgAbuseFilterLocallyDisabledGlobalActions</span></li> <li><span class="configvariable" title="Old standard block duration for logged in users. Kept for backward compatibility after T32024.">$wgAbuseFilterBlockDuration</span></li> <li><span class="configvariable" title="Default disallow messages, per filter group">$wgAbuseFilterDefaultDisallowMessage</span></li> <li><span class="configvariable" title="The list of &#39;groups&#39; filters can be divided into –&#160;used for applying edit filters to certain types of actions. By default there is only one group.">$wgAbuseFilterValidGroups</span></li> <li><span class="configvariable" title="Enable notifications for private filters">$wgAbuseFilterNotificationsPrivate</span></li> <li><span class="configvariable" title="Duration, in days, for which users&#39; autopromotion is blocked by filters.">$wgAbuseFilterBlockAutopromoteDuration</span></li> <li><span class="configvariable" title="Set this variable to true for the wiki where global AbuseFilters are stored in">$wgAbuseFilterIsCentral</span></li> <li><span class="configvariable" title="Allows to configure the extension to send hit notifications to Special:RecentChanges or UDP. Available options: rc, udp, rcandudp">$wgAbuseFilterNotifications</span></li></ul></div></td> </tr> <tr> <td class="mw-collapsible mw-collapsed" colspan="2"> <div class="mw-collapsible-header"><a href="/wiki/Special:MyLanguage/Template:Extension#rights" title="Special:MyLanguage/Template:Extension">Added rights</a><span style="display:none"><a href="/wiki/Template:Extension#rights" title="Template:Extension"> </a></span></div> <div class="mw-collapsible-content"> <ul><li>abusefilter-modify</li> <li>abusefilter-log-detail</li> <li>abusefilter-view</li> <li>abusefilter-log</li> <li>abusefilter-privatedetails</li> <li>abusefilter-privatedetails-log</li> <li>abusefilter-modify-restricted</li> <li>abusefilter-revert</li> <li>abusefilter-view-private</li> <li>abusefilter-log-private</li> <li>abusefilter-hidden-log</li> <li>abusefilter-hide-log</li> <li>abusefilter-modify-global</li> <li>abusefilter-modify-blocked-external-domains</li> <li>abusefilter-bypass-blocked-external-domains</li> <li>abusefilter-access-protected-vars</li> <li>abusefilter-protected-vars-log</li></ul> </div></td> </tr> <tr> <td class="mw-collapsible mw-collapsed" colspan="2"> <div class="mw-collapsible-header"><a href="/wiki/Special:MyLanguage/Template:Extension#hook" title="Special:MyLanguage/Template:Extension">Hooks used</a><span style="display:none"><a href="/wiki/Template:Extension#hook" title="Template:Extension"> </a></span></div> <style data-mw-deduplicate="TemplateStyles:r6219282">.mw-parser-output .plainlist ul{line-height:inherit;list-style:none none;margin:0}.mw-parser-output .plainlist ul li{margin-bottom:0}</style><div class="plainlist mw-collapsible-content"><ul><li><a href="/wiki/Special:MyLanguage/Manual:Hooks/ArticleDelete" title="Special:MyLanguage/Manual:Hooks/ArticleDelete">ArticleDelete</a><span style="display:none"><a href="/wiki/Manual:Hooks/ArticleDelete" title="Manual:Hooks/ArticleDelete"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Manual:Hooks/BeforeCreateEchoEvent" title="Special:MyLanguage/Manual:Hooks/BeforeCreateEchoEvent">BeforeCreateEchoEvent</a><span style="display:none"><a href="/wiki/Manual:Hooks/BeforeCreateEchoEvent" class="mw-redirect" title="Manual:Hooks/BeforeCreateEchoEvent"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Manual:Hooks/ChangeTagsListActive" title="Special:MyLanguage/Manual:Hooks/ChangeTagsListActive">ChangeTagsListActive</a><span style="display:none"><a href="/wiki/Manual:Hooks/ChangeTagsListActive" title="Manual:Hooks/ChangeTagsListActive"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Manual:Hooks/CheckUserInsertChangesRow" title="Special:MyLanguage/Manual:Hooks/CheckUserInsertChangesRow">CheckUserInsertChangesRow</a><span style="display:none"><a href="/wiki/Manual:Hooks/CheckUserInsertChangesRow" class="mw-redirect" title="Manual:Hooks/CheckUserInsertChangesRow"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Manual:Hooks/CheckUserInsertLogEventRow" title="Special:MyLanguage/Manual:Hooks/CheckUserInsertLogEventRow">CheckUserInsertLogEventRow</a><span style="display:none"><a href="/wiki/Manual:Hooks/CheckUserInsertLogEventRow" class="mw-redirect" title="Manual:Hooks/CheckUserInsertLogEventRow"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Manual:Hooks/CheckUserInsertPrivateEventRow" title="Special:MyLanguage/Manual:Hooks/CheckUserInsertPrivateEventRow">CheckUserInsertPrivateEventRow</a><span style="display:none"><a href="/wiki/Manual:Hooks/CheckUserInsertPrivateEventRow" class="mw-redirect" title="Manual:Hooks/CheckUserInsertPrivateEventRow"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Manual:Hooks/ContributionsToolLinks" title="Special:MyLanguage/Manual:Hooks/ContributionsToolLinks">ContributionsToolLinks</a><span style="display:none"><a href="/wiki/Manual:Hooks/ContributionsToolLinks" title="Manual:Hooks/ContributionsToolLinks"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Manual:Hooks/EditFilterMergedContent" title="Special:MyLanguage/Manual:Hooks/EditFilterMergedContent">EditFilterMergedContent</a><span style="display:none"><a href="/wiki/Manual:Hooks/EditFilterMergedContent" title="Manual:Hooks/EditFilterMergedContent"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Manual:Hooks/GetAutoPromoteGroups" title="Special:MyLanguage/Manual:Hooks/GetAutoPromoteGroups">GetAutoPromoteGroups</a><span style="display:none"><a href="/wiki/Manual:Hooks/GetAutoPromoteGroups" title="Manual:Hooks/GetAutoPromoteGroups"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Manual:Hooks/GetPreferences" title="Special:MyLanguage/Manual:Hooks/GetPreferences">GetPreferences</a><span style="display:none"><a href="/wiki/Manual:Hooks/GetPreferences" title="Manual:Hooks/GetPreferences"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Manual:Hooks/HistoryPageToolLinks" title="Special:MyLanguage/Manual:Hooks/HistoryPageToolLinks">HistoryPageToolLinks</a><span style="display:none"><a href="/wiki/Manual:Hooks/HistoryPageToolLinks" title="Manual:Hooks/HistoryPageToolLinks"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Manual:Hooks/JsonValidateSave" title="Special:MyLanguage/Manual:Hooks/JsonValidateSave">JsonValidateSave</a><span style="display:none"><a href="/wiki/Manual:Hooks/JsonValidateSave" title="Manual:Hooks/JsonValidateSave"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Manual:Hooks/ListDefinedTags" title="Special:MyLanguage/Manual:Hooks/ListDefinedTags">ListDefinedTags</a><span style="display:none"><a href="/wiki/Manual:Hooks/ListDefinedTags" title="Manual:Hooks/ListDefinedTags"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Manual:Hooks/LoadExtensionSchemaUpdates" title="Special:MyLanguage/Manual:Hooks/LoadExtensionSchemaUpdates">LoadExtensionSchemaUpdates</a><span style="display:none"><a href="/wiki/Manual:Hooks/LoadExtensionSchemaUpdates" title="Manual:Hooks/LoadExtensionSchemaUpdates"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Manual:Hooks/PageSaveComplete" title="Special:MyLanguage/Manual:Hooks/PageSaveComplete">PageSaveComplete</a><span style="display:none"><a href="/wiki/Manual:Hooks/PageSaveComplete" title="Manual:Hooks/PageSaveComplete"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Manual:Hooks/ParserOutputStashForEdit" title="Special:MyLanguage/Manual:Hooks/ParserOutputStashForEdit">ParserOutputStashForEdit</a><span style="display:none"><a href="/wiki/Manual:Hooks/ParserOutputStashForEdit" title="Manual:Hooks/ParserOutputStashForEdit"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Manual:Hooks/RecentChange_save" title="Special:MyLanguage/Manual:Hooks/RecentChange save">RecentChange_save</a><span style="display:none"><a href="/wiki/Manual:Hooks/RecentChange_save" title="Manual:Hooks/RecentChange save"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Manual:Hooks/SaveUserOptions" title="Special:MyLanguage/Manual:Hooks/SaveUserOptions">SaveUserOptions</a><span style="display:none"><a href="/wiki/Manual:Hooks/SaveUserOptions" title="Manual:Hooks/SaveUserOptions"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Manual:Hooks/TitleMove" title="Special:MyLanguage/Manual:Hooks/TitleMove">TitleMove</a><span style="display:none"><a href="/wiki/Manual:Hooks/TitleMove" title="Manual:Hooks/TitleMove"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Manual:Hooks/UndeletePageToolLinks" title="Special:MyLanguage/Manual:Hooks/UndeletePageToolLinks">UndeletePageToolLinks</a><span style="display:none"><a href="/wiki/Manual:Hooks/UndeletePageToolLinks" title="Manual:Hooks/UndeletePageToolLinks"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Manual:Hooks/UploadStashFile" title="Special:MyLanguage/Manual:Hooks/UploadStashFile">UploadStashFile</a><span style="display:none"><a href="/wiki/Manual:Hooks/UploadStashFile" title="Manual:Hooks/UploadStashFile"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Manual:Hooks/UploadVerifyUpload" title="Special:MyLanguage/Manual:Hooks/UploadVerifyUpload">UploadVerifyUpload</a><span style="display:none"><a href="/wiki/Manual:Hooks/UploadVerifyUpload" title="Manual:Hooks/UploadVerifyUpload"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Manual:Hooks/UserMergeAccountFields" title="Special:MyLanguage/Manual:Hooks/UserMergeAccountFields">UserMergeAccountFields</a><span style="display:none"><a href="/wiki/Manual:Hooks/UserMergeAccountFields" class="mw-redirect" title="Manual:Hooks/UserMergeAccountFields"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Manual:Hooks/getUserPermissionsErrors" title="Special:MyLanguage/Manual:Hooks/getUserPermissionsErrors">getUserPermissionsErrors</a><span style="display:none"><a href="/wiki/Manual:Hooks/getUserPermissionsErrors" title="Manual:Hooks/getUserPermissionsErrors"> </a></span></li></ul></div> </td> </tr> <tr> <td class="mw-collapsible mw-collapsed" colspan="2"> <div class="mw-collapsible-header"><a href="/wiki/Special:MyLanguage/Template:Extension#newhook" title="Special:MyLanguage/Template:Extension">Hooks provided</a><span style="display:none"><a href="/wiki/Template:Extension#newhook" title="Template:Extension"> </a></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r6219282"><div class="plainlist mw-collapsible-content"><ul><li><a href="/wiki/Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilterAlterVariables" title="Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilterAlterVariables">AbuseFilterAlterVariables</a><span style="display:none"><a href="/wiki/Extension:AbuseFilter/Hooks/AbuseFilterAlterVariables" title="Extension:AbuseFilter/Hooks/AbuseFilterAlterVariables"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilter-builder" title="Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilter-builder">AbuseFilter-builder</a><span style="display:none"><a href="/wiki/Extension:AbuseFilter/Hooks/AbuseFilter-builder" title="Extension:AbuseFilter/Hooks/AbuseFilter-builder"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilter-deprecatedVariables" title="Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilter-deprecatedVariables">AbuseFilter-deprecatedVariables</a><span style="display:none"><a href="/wiki/Extension:AbuseFilter/Hooks/AbuseFilter-deprecatedVariables" title="Extension:AbuseFilter/Hooks/AbuseFilter-deprecatedVariables"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilter-computeVariable" title="Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilter-computeVariable">AbuseFilter-computeVariable</a><span style="display:none"><a href="/wiki/Extension:AbuseFilter/Hooks/AbuseFilter-computeVariable" title="Extension:AbuseFilter/Hooks/AbuseFilter-computeVariable"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilter-contentToString" title="Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilter-contentToString">AbuseFilter-contentToString</a><span style="display:none"><a href="/wiki/Extension:AbuseFilter/Hooks/AbuseFilter-contentToString" title="Extension:AbuseFilter/Hooks/AbuseFilter-contentToString"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilterCustomActions" title="Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilterCustomActions">AbuseFilterCustomActions</a><span style="display:none"><a href="/wiki/Extension:AbuseFilter/Hooks/AbuseFilterCustomActions" title="Extension:AbuseFilter/Hooks/AbuseFilterCustomActions"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilter-deprecatedVariables" title="Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilter-deprecatedVariables">AbuseFilter-deprecatedVariables</a><span style="display:none"><a href="/wiki/Extension:AbuseFilter/Hooks/AbuseFilter-deprecatedVariables" title="Extension:AbuseFilter/Hooks/AbuseFilter-deprecatedVariables"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilter-filterAction" title="Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilter-filterAction">AbuseFilter-filterAction</a><span style="display:none"><a href="/wiki/Extension:AbuseFilter/Hooks/AbuseFilter-filterAction" title="Extension:AbuseFilter/Hooks/AbuseFilter-filterAction"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilter-generateGenericVars" title="Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilter-generateGenericVars">AbuseFilter-generateGenericVars</a><span style="display:none"><a href="/wiki/Extension:AbuseFilter/Hooks/AbuseFilter-generateGenericVars" title="Extension:AbuseFilter/Hooks/AbuseFilter-generateGenericVars"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilter-generateTitleVars" title="Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilter-generateTitleVars">AbuseFilter-generateTitleVars</a><span style="display:none"><a href="/wiki/Extension:AbuseFilter/Hooks/AbuseFilter-generateTitleVars" title="Extension:AbuseFilter/Hooks/AbuseFilter-generateTitleVars"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilter-generateUserVars" title="Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilter-generateUserVars">AbuseFilter-generateUserVars</a><span style="display:none"><a href="/wiki/Extension:AbuseFilter/Hooks/AbuseFilter-generateUserVars" title="Extension:AbuseFilter/Hooks/AbuseFilter-generateUserVars"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilter-generateStaticVars" title="Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilter-generateStaticVars">AbuseFilter-generateStaticVars</a><span style="display:none"><a href="/wiki/Extension:AbuseFilter/Hooks/AbuseFilter-generateStaticVars" title="Extension:AbuseFilter/Hooks/AbuseFilter-generateStaticVars"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilterGenerateVarsForRecentChange" title="Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilterGenerateVarsForRecentChange">AbuseFilterGenerateVarsForRecentChange</a><span style="display:none"><a href="/wiki/Extension:AbuseFilter/Hooks/AbuseFilterGenerateVarsForRecentChange" title="Extension:AbuseFilter/Hooks/AbuseFilterGenerateVarsForRecentChange"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilterGetDangerousActions" title="Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilterGetDangerousActions">AbuseFilterGetDangerousActions</a><span style="display:none"><a href="/wiki/Extension:AbuseFilter/Hooks/AbuseFilterGetDangerousActions" title="Extension:AbuseFilter/Hooks/AbuseFilterGetDangerousActions"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilter-interceptVariable" title="Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilter-interceptVariable">AbuseFilter-interceptVariable</a><span style="display:none"><a href="/wiki/Extension:AbuseFilter/Hooks/AbuseFilter-interceptVariable" title="Extension:AbuseFilter/Hooks/AbuseFilter-interceptVariable"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilterShouldFilterAction" title="Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilterShouldFilterAction">AbuseFilterShouldFilterAction</a><span style="display:none"><a href="/wiki/Extension:AbuseFilter/Hooks/AbuseFilterShouldFilterAction" title="Extension:AbuseFilter/Hooks/AbuseFilterShouldFilterAction"> </a></span></li></ul></div> </td> </tr> <tr> <td title="This only includes downloads from Special:ExtensionDistributor. Other download methods such as git or bundled extensions are not included."><b>Quarterly downloads</b></td> <td>138 (Ranked 42<sup>nd</sup>)</td> </tr> <tr> <td title=""><a rel="nofollow" class="external text" href="https://wikiapiary.com/wiki/Extension:AbuseFilter"><b>Public wikis using</b></a></td> <td>2,939 (Ranked 186<sup>th</sup>)</td> </tr> <tr> <td colspan="2" class="ext-infobox-translate"> <a href="https://translatewiki.net/wiki/Special:Translate/ext-abusefilter" class="extiw" title="translatewiki:Special:Translate/ext-abusefilter">Translate the AbuseFilter extension</a> if it is available at translatewiki.net</td> </tr><tr class="mw-empty-elt"> </tr> <tr> <td> <b><a href="/wiki/Special:MyLanguage/Phabricator" title="Special:MyLanguage/Phabricator">Issues</a><span style="display:none"><a href="/wiki/Phabricator" title="Phabricator"> </a></span></b></td> <td><a href="https://phabricator.wikimedia.org/tag/abusefilter" class="extiw" title="phab:tag/abusefilter">Open tasks</a> · <a class="external text" href="https://phabricator.wikimedia.org/maniphest/task/create/?projects=AbuseFilter">Report a bug</a></td> </tr> </tbody></table> <div style="display:inline-flex; flex-direction:row; align-items: center; background-color: #e0e0e0; border-radius: 4px; border: 1px solid #49acca; float: right; clear: right; box-shadow: 0 2px 1px rgba(0,0,0,0.1); margin: 5px 10px;"> <div style="padding: 7px 10px; background-color: white; border-radius: 4px 0 0 4px;"><span typeof="mw:File"><a href="/wiki/File:Coolest_Tool_Award_2020_square_logo.svg" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/6/6d/Coolest_Tool_Award_2020_square_logo.svg/120px-Coolest_Tool_Award_2020_square_logo.svg.png" decoding="async" width="120" height="121" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/6/6d/Coolest_Tool_Award_2020_square_logo.svg/180px-Coolest_Tool_Award_2020_square_logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/6/6d/Coolest_Tool_Award_2020_square_logo.svg/240px-Coolest_Tool_Award_2020_square_logo.svg.png 2x" data-file-width="1565" data-file-height="1583" /></a></span></div> <div style="text-align:center; padding: 5px 10px;"> <p style="margin-top: 0;">AbuseFilter</p> <p style="font-family: Impact, Charcoal, sans-serif; text-transform: uppercase; line-height:1.1;"> <a href="https://meta.wikimedia.org/wiki/Coolest_Tool_Award" class="extiw" title="m:Coolest Tool Award"><span style="font-size: 18px; color: #666666;"><span style="color: #49acca">2020</span> Coolest Tool</span><br /><span style="font-size: 22px; color: black;">Award Winner</span></a> </p> <p style="line-height:1.1; margin-bottom: 0;"> <span style="font-size:smaller">in the category</span> <br /> <span style="font-weight:bold;color:#49acca;">Quality</span> </p> </div> </div> <p><br /> The <b>AbuseFilter</b> extension allows privileged users to set specific actions to be taken when actions by users, such as edits, match certain criteria. </p><p>For example, a filter could be created to prevent unregistered users from adding external links, or to disallow edits that remove more than 2000 characters. </p> <div class="mw-inputbox-centered" style=""><form name="searchbox" class="searchbox mw-inputbox-form" action="/wiki/Special:Search"><div class="cdx-text-input"><input class="mw-inputbox-input mw-searchInput searchboxInput cdx-text-input__input" name="search" placeholder="" size="50" dir="ltr" /></div><input type="hidden" value="Extension:AbuseFilter" name="prefix" /><br /><input type="submit" name="fulltext" value="Search in Extension:AbuseFilter" class="cdx-button" /><input type="hidden" value="Search" name="fulltext" /></form></div> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="Installation">Installation</h2></div> <ul><li><a href="/wiki/Special:ExtensionDistributor/AbuseFilter" title="Special:ExtensionDistributor/AbuseFilter">Download</a> and move the extracted <code>AbuseFilter</code> folder to your <code>extensions/</code> directory.<br />Developers and code contributors should install the extension <a href="/wiki/Special:MyLanguage/Download_from_Git" title="Special:MyLanguage/Download from Git">from Git</a> instead, using:<code class="mw-code mw-highlight" style="display:block">cd extensions/<br />git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/AbuseFilter</code></li> <li>Only when installing from Git, run <a href="/wiki/Special:MyLanguage/Composer" title="Special:MyLanguage/Composer">Composer</a> to install PHP dependencies, by issuing <code>composer install --no-dev</code> in the extension directory. <small>(See <a href="https://phabricator.wikimedia.org/T173141" class="extiw" title="phabricator:T173141">task T173141</a> for potential complications.)</small></li> <li>Add the following code at the bottom of your <a href="/wiki/Special:MyLanguage/Manual:LocalSettings.php" title="Special:MyLanguage/Manual:LocalSettings.php">LocalSettings.php</a><span style="display:none"><a href="/wiki/Manual:LocalSettings.php" title="Manual:LocalSettings.php"> </a></span> file: <div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="nx">wfLoadExtension</span><span class="p">(</span> <span class="s1">&#39;AbuseFilter&#39;</span> <span class="p">);</span> </pre></div></li> <li>Run the <b><a href="/wiki/Special:MyLanguage/Manual:Update.php" title="Special:MyLanguage/Manual:Update.php">update script</a></b> which will automatically create the necessary database tables that this extension needs.</li> <li><a href="#Configuration">Configure as required.</a></li> <li><span typeof="mw:File"><span><img alt="Yes" src="//upload.wikimedia.org/wikipedia/commons/thumb/f/f6/OOjs_UI_icon_check-constructive.svg/15px-OOjs_UI_icon_check-constructive.svg.png" decoding="async" width="15" height="15" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/f/f6/OOjs_UI_icon_check-constructive.svg/23px-OOjs_UI_icon_check-constructive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/f/f6/OOjs_UI_icon_check-constructive.svg/30px-OOjs_UI_icon_check-constructive.svg.png 2x" data-file-width="20" data-file-height="20" /></span></span>&#160;<b>Done</b> – Navigate to <a href="/wiki/Special:Version" title="Special:Version">Special:Version</a> on your wiki to verify that the extension is successfully installed.</li></ul> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r6651107"><div role="note" class="note note-info">When installing from <a href="/wiki/Special:MyLanguage/Gerrit" title="Special:MyLanguage/Gerrit">Git</a>, please note that this extension requires <a href="/wiki/Special:MyLanguage/Composer" title="Special:MyLanguage/Composer">Composer</a><span style="display:none"><a href="/wiki/Composer" title="Composer"> </a></span>. <p>So, after installation from Git change to the directory containing the extension e.g. "../extensions/AbuseFilter/" and run <code>composer install --no-dev</code>, or when updating: <code>composer update --no-dev</code>. </p><p>Alternatively as well as preferably add the line <code>"extensions/AbuseFilter/composer.json"</code> to the "composer.local.json" file in the root directory of your wiki like e.g. </p> <div class="mw-highlight mw-highlight-lang-json mw-content-ltr" dir="ltr"><pre><span></span><span class="p">{</span> <span class="w"> </span><span class="nt">&quot;extra&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nt">&quot;merge-plugin&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nt">&quot;include&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span> <span class="w"> </span><span class="s2">&quot;extensions/AbuseFilter/composer.json&quot;</span> <span class="w"> </span><span class="p">]</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="p">}</span> <span class="p">}</span> </pre></div></div> <div class="mw-heading mw-heading2"><h2 id="Configuration">Configuration</h2></div> <div class="mw-heading mw-heading3"><h3 id="User_rights">User rights</h3></div> <p>Once you installed the extension, you'll have to set up the user rights in "LocalSettings.php". </p> <table class="wikitable prettytable"> <caption>User rights for AbuseFilter </caption> <tbody><tr> <th scope="col">Right </th> <th scope="col">Description </th> <th scope="col">Notes </th> <th scope="col">User groups that have this right by default </th></tr> <tr> <td>abusefilter-modify </td> <td>Create or modify abuse filters </td> <td>Requires the <code>abusefilter-view</code> right </td> <td>sysop </td></tr> <tr> <td>abusefilter-view </td> <td>View abuse filters </td> <td> </td> <td>* </td></tr> <tr> <td>abusefilter-log </td> <td>View the abuse log </td> <td> </td> <td>* </td></tr> <tr> <td>abusefilter-log-detail </td> <td>View detailed abuse log entries </td> <td>Requires the <code>abusefilter-log</code> right </td> <td>sysop </td></tr> <tr> <td>abusefilter-privatedetails </td> <td>View private data in the abuse log </td> <td>Prior to 1.34 this right was named <code>abusefilter-private</code> - Requires the <code>abusefilter-log-detail</code> right </td> <td>— </td></tr> <tr> <td>abusefilter-modify-restricted </td> <td>Modify abuse filters with restricted actions </td> <td>Requires the <code>abusefilter-modify</code> right </td> <td>sysop </td></tr> <tr> <td>abusefilter-modify-global </td> <td>Create or modify global abuse filters </td> <td>Requires the <code>abusefilter-modify</code> right </td> <td>— </td></tr> <tr> <td>abusefilter-revert </td> <td>Revert all changes by a given abuse filter </td> <td> </td> <td>sysop </td></tr> <tr> <td>abusefilter-view-private </td> <td>View abuse filters marked as private </td> <td>Requires the <code>abusefilter-view</code> right (not needed if the group already has the <code>abusefilter-modify</code> right) </td> <td>sysop </td></tr> <tr> <td>abusefilter-log-private </td> <td>View log entries of abuse filters marked as private </td> <td>Requires the <code>abusefilter-log</code> right (not needed if the group already has the <code>abusefilter-modify</code> or <code>abusefilter-view-private</code> rights) </td> <td>sysop </td></tr> <tr> <td>abusefilter-hide-log </td> <td>Hide entries in the abuse log </td> <td>Requires the <code>abusefilter-log</code> right </td> <td>suppress </td></tr> <tr> <td>abusefilter-hidden-log </td> <td>View hidden abuse log entries </td> <td>Requires the <code>abusefilter-log</code> right </td> <td>suppress </td></tr> <tr> <td>abusefilter-privatedetails-log </td> <td>View the AbuseFilter private details access log </td> <td>Prior to 1.34 this right was named <code>abusefilter-private-log</code> </td> <td>— </td></tr> <tr> <td>abusefilter-modify-blocked-external-domains </td> <td>Create or modify what external domains are blocked from being linked </td> <td> </td> <td>sysop </td></tr> <tr> <td>abusefilter-bypass-blocked-external-domains </td> <td>Bypass blocked external domains </td> <td>Requires the <code>edit</code> right </td> <td>bot </td></tr> <tr> <td>abusefilter-access-protected-vars </td> <td>View and create filters that use protected variables </td> <td> </td> <td>sysop </td></tr> <tr> <td>abusefilter-protected-vars-log </td> <td>View logs related to accessing protected variable values </td> <td> </td> <td>sysop </td></tr></tbody></table> <p>For example, the following sample configuration would allow sysops to do everything they want with AbuseFilter, and everyone to view the log and see public filter settings: </p> <div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="nv">$wgGroupPermissions</span><span class="p">[</span><span class="s1">&#39;sysop&#39;</span><span class="p">][</span><span class="s1">&#39;abusefilter-modify&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="k">true</span><span class="p">;</span> <span class="nv">$wgGroupPermissions</span><span class="p">[</span><span class="s1">&#39;*&#39;</span><span class="p">][</span><span class="s1">&#39;abusefilter-log-detail&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="k">true</span><span class="p">;</span> <span class="nv">$wgGroupPermissions</span><span class="p">[</span><span class="s1">&#39;*&#39;</span><span class="p">][</span><span class="s1">&#39;abusefilter-view&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="k">true</span><span class="p">;</span> <span class="nv">$wgGroupPermissions</span><span class="p">[</span><span class="s1">&#39;*&#39;</span><span class="p">][</span><span class="s1">&#39;abusefilter-log&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="k">true</span><span class="p">;</span> <span class="nv">$wgGroupPermissions</span><span class="p">[</span><span class="s1">&#39;sysop&#39;</span><span class="p">][</span><span class="s1">&#39;abusefilter-privatedetails&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="k">true</span><span class="p">;</span> <span class="nv">$wgGroupPermissions</span><span class="p">[</span><span class="s1">&#39;sysop&#39;</span><span class="p">][</span><span class="s1">&#39;abusefilter-modify-restricted&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="k">true</span><span class="p">;</span> <span class="nv">$wgGroupPermissions</span><span class="p">[</span><span class="s1">&#39;sysop&#39;</span><span class="p">][</span><span class="s1">&#39;abusefilter-revert&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="k">true</span><span class="p">;</span> <span class="nv">$wgGroupPermissions</span><span class="p">[</span><span class="s1">&#39;sysop&#39;</span><span class="p">][</span><span class="s1">&#39;abusefilter-access-protected-vars&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="k">true</span><span class="p">;</span> <span class="nv">$wgGroupPermissions</span><span class="p">[</span><span class="s1">&#39;sysop&#39;</span><span class="p">][</span><span class="s1">&#39;abusefilter-protected-vars-log&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="k">true</span><span class="p">;</span> </pre></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r6651107"><div role="note" class="note note-info">Filters marked as private can only be viewed by users with either the abusefilter-modify or abusefilter-view-private permission.</div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r6651107"><div role="note" class="note note-info">Protected filters can only be created and viewed by users with the <code>abusefilter-access-protected-vars</code> permission. Logs pertaining to these filters can only be viewed by users with the <code>abusefilter-protected-vars-log</code> permission. For more information, see <a href="/wiki/Special:MyLanguage/Extension:AbuseFilter/Rules_format#Protected_variables" title="Special:MyLanguage/Extension:AbuseFilter/Rules format">Rules format</a><span style="display:none"><a href="/wiki/Extension:AbuseFilter/Rules_format#Protected_variables" title="Extension:AbuseFilter/Rules format"> </a></span>.</div> <div class="mw-heading mw-heading3"><h3 id="Parameters">Parameters</h3></div> <table class="wikitable prettytable"> <tbody><tr> <th>Variable name </th> <th>Default value </th> <th>Description </th></tr> <tr> <td><code>$wgAbuseFilterActions</code> </td> <td><div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="p">[</span> <span class="s1">&#39;throttle&#39;</span> <span class="o">=&gt;</span> <span class="k">true</span><span class="p">,</span> <span class="s1">&#39;warn&#39;</span> <span class="o">=&gt;</span> <span class="k">true</span><span class="p">,</span> <span class="s1">&#39;disallow&#39;</span> <span class="o">=&gt;</span> <span class="k">true</span><span class="p">,</span> <span class="s1">&#39;blockautopromote&#39;</span> <span class="o">=&gt;</span> <span class="k">true</span><span class="p">,</span> <span class="s1">&#39;block&#39;</span> <span class="o">=&gt;</span> <span class="k">true</span><span class="p">,</span> <span class="s1">&#39;rangeblock&#39;</span> <span class="o">=&gt;</span> <span class="k">false</span><span class="p">,</span> <span class="s1">&#39;degroup&#39;</span> <span class="o">=&gt;</span> <span class="k">false</span><span class="p">,</span> <span class="s1">&#39;tag&#39;</span> <span class="o">=&gt;</span> <span class="k">true</span> <span class="p">]</span> </pre></div> </td> <td>The possible actions that can be taken by abuse filters. When adding a new action, check if it is restricted in <code>$wgAbuseFilterActionRestrictions</code> and, if it is, don't forget to add the <code>abusefilter-modify-restricted</code> right to the appropriate user groups. </td></tr> <tr> <td><code>$wgAbuseFilterConditionLimit</code> </td> <td><div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="mi">1000</span> </pre></div> </td> <td>The maximum number of 'conditions' that can be used each time the filters are run against a change. (More complex filters require more 'conditions'). </td></tr> <tr> <td><code>$wgAbuseFilterValidGroups</code> </td> <td><div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="p">[</span> <span class="s1">&#39;default&#39;</span> <span class="p">]</span> </pre></div> </td> <td>The list of "groups" filters can be divided into. By default there is only one group. Other extensions may add other groups. </td></tr> <tr> <td><code>$wgAbuseFilterEmergencyDisableThreshold</code> </td> <td><div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="p">[</span> <span class="s1">&#39;default&#39;</span> <span class="o">=&gt;</span> <span class="mf">0.05</span> <span class="p">]</span> </pre></div> </td> <td rowspan="3">Disable a filter if it matched more than 2 edits, constituting more than 5&#160;% of the actions which were checked against the filter's group in the "observed" period (at most one day), and the filter has been changed in the last 86400 seconds (one day). See <a href="#Emergency_throttling">emergency throttling</a>. </td></tr> <tr> <td><code>$wgAbuseFilterEmergencyDisableCount</code> </td> <td><div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="p">[</span> <span class="s1">&#39;default&#39;</span> <span class="o">=&gt;</span> <span class="mi">2</span> <span class="p">]</span> </pre></div> </td></tr> <tr> <td><code>$wgAbuseFilterEmergencyDisableAge</code> </td> <td><div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="p">[</span> <span class="s1">&#39;default&#39;</span> <span class="o">=&gt;</span> <span class="mi">86400</span> <span class="p">]</span> </pre></div> </td></tr> <tr> <td><code>$wgAbuseFilterActionRestrictions</code> </td> <td><div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="p">[</span> <span class="s2">&quot;throttle&quot;</span> <span class="o">=&gt;</span> <span class="k">false</span><span class="p">,</span> <span class="s2">&quot;warn&quot;</span> <span class="o">=&gt;</span> <span class="k">false</span><span class="p">,</span> <span class="s2">&quot;disallow&quot;</span> <span class="o">=&gt;</span> <span class="k">false</span><span class="p">,</span> <span class="s2">&quot;blockautopromote&quot;</span> <span class="o">=&gt;</span> <span class="k">true</span><span class="p">,</span> <span class="s2">&quot;block&quot;</span> <span class="o">=&gt;</span> <span class="k">true</span><span class="p">,</span> <span class="s2">&quot;rangeblock&quot;</span> <span class="o">=&gt;</span> <span class="k">true</span><span class="p">,</span> <span class="s2">&quot;degroup&quot;</span> <span class="o">=&gt;</span> <span class="k">true</span><span class="p">,</span> <span class="s2">&quot;tag&quot;</span> <span class="o">=&gt;</span> <span class="k">false</span> <span class="p">]</span> </pre></div> </td> <td>Users must have the "abusefilter-modify-restricted" user right as well as "abusefilter-modify" in order to create or modify filters which carry out these actions. </td></tr> <tr> <td><code>$wgAbuseFilterNotifications</code> </td> <td><div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="k">false</span> </pre></div> </td> <td>Allows to configure the extension to send hit notifications to Special:RecentChanges or UDP. Available options: rc, udp, rcandudp <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r6651107"><div role="note" class="note note-info">For sending changes to abuse filters to Special:RecentChanges, use <code class="mw-highlight mw-highlight-lang-php mw-content-ltr" style="" dir="ltr"><span class="nb">unset</span><span class="p">(</span><span class="nv">$wgLogRestrictions</span><span class="p">[</span><span class="s1">&#39;abusefilter&#39;</span><span class="p">]);</span></code>.</div> </td></tr> <tr> <td><code>$wgAbuseFilterNotificationsPrivate</code> </td> <td><div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="k">false</span> </pre></div> </td> <td>Enable notifications for private filters. </td></tr> <tr> <td><code>$wgAbuseFilterCentralDB</code> </td> <td><div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="k">null</span> </pre></div> </td> <td><span style="display: inline-block; border: 1px solid var( --border-color-notice, #54595d ); background-color: var( --background-color-interactive, #eaecf0 ); color: var( --color-base, #202122 ); padding: 1px 4px; margin: 0 4px; white-space:nowrap;">MW 1.41+</span> Name of a database where global abuse filters will be stored in. Requires CentralAuth installed otherwise global filters will break on a wikifarm. </td></tr> <tr> <td><code>$wgAbuseFilterIsCentral</code> </td> <td><div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="k">false</span> </pre></div> </td> <td><span style="display: inline-block; border: 1px solid var( --border-color-notice, #54595d ); background-color: var( --background-color-interactive, #eaecf0 ); color: var( --color-base, #202122 ); padding: 1px 4px; margin: 0 4px; white-space:nowrap;">MW 1.41+</span> Set this variable to true for the wiki where global AbuseFilters are stored in. Requires CentralAuth installed otherwise global filters will break on a wikifarm. </td></tr> <tr> <td><code>$wgAbuseFilterLocallyDisabledGlobalActions</code> </td> <td><div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="p">[</span> <span class="s2">&quot;throttle&quot;</span> <span class="o">=&gt;</span> <span class="k">false</span><span class="p">,</span> <span class="s2">&quot;warn&quot;</span> <span class="o">=&gt;</span> <span class="k">false</span><span class="p">,</span> <span class="s2">&quot;disallow&quot;</span> <span class="o">=&gt;</span> <span class="k">false</span><span class="p">,</span> <span class="s2">&quot;blockautopromote&quot;</span> <span class="o">=&gt;</span> <span class="k">false</span><span class="p">,</span> <span class="s2">&quot;block&quot;</span> <span class="o">=&gt;</span> <span class="k">false</span><span class="p">,</span> <span class="s2">&quot;rangeblock&quot;</span> <span class="o">=&gt;</span> <span class="k">false</span><span class="p">,</span> <span class="s2">&quot;degroup&quot;</span> <span class="o">=&gt;</span> <span class="k">false</span><span class="p">,</span> <span class="s2">&quot;tag&quot;</span> <span class="o">=&gt;</span> <span class="k">false</span> <span class="p">]</span> </pre></div> </td> <td>Disallow Centralised filters from taking actions set as true in this variable. </td></tr> <tr> <td><code>$wgAbuseFilterBlockDuration</code> </td> <td><div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="s1">&#39;indefinite&#39;</span> </pre></div> </td> <td>Duration of blocks made by AbuseFilter. <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r6651107"><div role="note" class="note note-info">as of 1.31.0-wmf.25 block durations may be specified for every single filter and will override this variable. This variable is only used when enabling the block in order to preselect a default duration.</div> </td></tr> <tr> <td><code>$wgAbuseFilterAnonBlockDuration</code> </td> <td><div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="k">null</span> </pre></div> </td> <td>Duration of blocks made by AbuseFilter on users who are not logged in. The value of <code>$wgAbuseFilterBlockDuration</code> will be used if this is not set. <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r6651107"><div role="note" class="note note-info">as of 1.31.0-wmf.25 block durations may be specified for every single filter and will override this variable. This variable is only used when enabling the block in order to preselect a default duration.</div> </td></tr> <tr> <td><code>$wgAbuseFilterBlockAutopromoteDuration</code> </td> <td><div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="mi">5</span> </pre></div> </td> <td>Duration, in days, for which users' autopromotion is blocked by filters. </td></tr> <tr> <td><code>$wgAbuseFilterDefaultWarningMessage</code> </td> <td><div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="p">[</span> <span class="s1">&#39;default&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;abusefilter-warning&#39;</span> <span class="p">]</span> </pre></div> </td> <td>Default warning messages, per filter group </td></tr> <tr> <td><code>$wgAbuseFilterDefaultDisallowMessage</code> </td> <td><div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="p">[</span> <span class="s1">&#39;default&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;abusefilter-disallowed&#39;</span> <span class="p">]</span> </pre></div> </td> <td>Default disallow messages, per filter group </td></tr> <tr> <td><code>$wgAbuseFilterLogIP</code> </td> <td><div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="k">true</span> </pre></div> </td> <td>Whether to include IP in the abuse_filter_log </td></tr> <tr> <td><code>$wgAbuseFilterLogIPMaxAge</code> </td> <td><div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="mi">3</span> <span class="o">*</span> <span class="mi">30</span> <span class="o">*</span> <span class="mi">24</span> <span class="o">*</span> <span class="mi">3600</span> </pre></div> </td> <td>Age used as cutoff when purging old IP log data. Defaults to 3 months. Used by maintenance script purgeOldLogIPData.php. </td></tr> <tr> <td><code>$wgAbuseFilterProfileActionsCap</code> </td> <td><div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="mi">10000</span> </pre></div> </td> <td>Number of action that determines when to reset profiling stats. </td></tr> <tr> <td><code>$wgAbuseFilterLogPrivateDetailsAccess</code> </td> <td><div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="k">false</span> </pre></div> </td> <td>Whether accessing private information from a filter log entry is logged. </td></tr> <tr> <td><code>$wgAbuseFilterPrivateDetailsForceReason</code> </td> <td><div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="k">false</span> </pre></div> </td> <td>Whether users are forced to provide a reason for accessing private information from a filter log entry. </td></tr> <tr> <td><code>$wgAbuseFilterSlowFilterRuntimeLimit</code> </td> <td><div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="mi">500</span> </pre></div> </td> <td>Runtime in milliseconds before a filter is considered slow. </td></tr> <tr> <td><code>$wgAbuseFilterRangeBlockSize</code> </td> <td><div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="p">[</span> <span class="s1">&#39;IPv4&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;16&#39;</span><span class="p">,</span> <span class="s1">&#39;IPv6&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;19&#39;</span><span class="p">,</span> <span class="p">]</span> </pre></div> </td> <td>Size of the range blocked by 'rangeblock' action. </td></tr> <tr> <td><code>$wgAbuseFilterProtectedVariables</code> </td> <td><div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="p">[</span> <span class="s2">&quot;user_unnamed_ip&quot;</span> <span class="p">]</span> </pre></div> </td> <td>Array of variables that are be considered protected (limited access) and require the <code>abusefilter-access-protected-vars</code> right to use/view. </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Emergency_throttling">Emergency throttling</h3></div> <p>AbuseFilter comes with a feature that automatically throttles (disables) filters that have been edited recently and match a certain threshold of the latest actions. </p><p>This is done to prevent harmful edits on the filters to block every user that performs an action on the wiki or similar. </p><p>The condition to disable the filter depend on those variables: </p> <ul><li><code>$wgAbuseFilterEmergencyDisableThreshold</code> - Percent of matches over the total amount of actions in the observed period.</li> <li><code>$wgAbuseFilterEmergencyDisableCount</code> - Count of matches of the filter in the observed period.</li> <li><code>$wgAbuseFilterEmergencyDisableAge</code> - Age of the filter to take it into account. If the last edit of the filter is older than this number of seconds, the filter won't be throttled, unless it's already throttled.</li></ul> <p>Throttled filters can be identified in the list of filters (Special:AbuseFilter) with the state <span style="color: red;">Enabled, High rate of matches</span>. Throttling happens silently, and there's no way to see when a filter got throttled, except when <a href="/wiki/Special:MyLanguage/Extension:Echo" title="Special:MyLanguage/Extension:Echo">Extension:Echo</a><span style="display:none"><a href="/wiki/Extension:Echo" title="Extension:Echo"> </a></span> is installed, then a notification is sent to the user who was last to modify the filter. </p><p>When a filter gets throttled, it doesn't perform any dangerous action (actions usually restricted to special rights like blocking the user, or removing it from groups, controlled by $wgAbuseFilterActionRestrictions), and only "safe" actions are allowed (the ones that can warn or prevent the ongoing action). Throttled filters don't get enabled automatically. To disable the throttling, you need to edit the filter. Note that you need to actually change something from the filter: changing something from the filter's notes is sufficient. </p><p>Note that editing the filter updates its age, and can cause it to be disabled if it reaches again the conditions to be throttled in a short period since the last edit, leading to a unusable filter if your wiki has more abuse edits than legitimate ones. </p> <div class="mw-heading mw-heading2"><h2 id="Creating_and_managing_filters">Creating and managing filters</h2></div> <p>Once the extension has been installed, filters can be created/tested/changed/deleted and the logs can be accessed from the Abuse filter management page <a href="/wiki/Special:AbuseFilter" title="Special:AbuseFilter">Special:AbuseFilter</a>. </p> <ul><li><a href="/wiki/Special:MyLanguage/Extension:AbuseFilter/Rules_format" title="Special:MyLanguage/Extension:AbuseFilter/Rules format">Rules format</a> - The basics of how to write a filter</li> <li><a href="/wiki/Special:MyLanguage/Extension:AbuseFilter/Actions" title="Special:MyLanguage/Extension:AbuseFilter/Actions">Actions</a></li> <li><a href="/wiki/Extension:AbuseFilter/Global" title="Extension:AbuseFilter/Global">Global Rules</a></li> <li><a href="/wiki/Extension:AbuseFilter/Conditions" title="Extension:AbuseFilter/Conditions">Guide to optimizing condition limit usage</a></li> <li>To import filters from Wikipedia: When you have installed the extension, go to <a href="https://en.wikipedia.org/wiki/Special:AbuseFilter" class="extiw" title="w:Special:AbuseFilter">w:Special:AbuseFilter</a>, choose a filter (say <a href="https://en.wikipedia.org/wiki/Special:AbuseFilter/3" class="extiw" title="w:Special:AbuseFilter/3">w:Special:AbuseFilter/3</a>), then click "Export this filter to another wiki", copy the text, go to "Special:AbuseFilter/import" on your wiki, paste the text.</li> <li><a href="https://meta.wikimedia.org/wiki/Special:MyLanguage/Small_wiki_toolkits/Starter_kit/AbuseFilter" class="extiw" title="m:Special:MyLanguage/Small wiki toolkits/Starter kit/AbuseFilter">m:Small wiki toolkits/Starter kit/AbuseFilter</a> - A guide for small wiki communities on metawiki</li></ul> <div class="mw-heading mw-heading2"><h2 id="API">API</h2></div> <p>AbuseFilter adds two API list modules, one for details of abuse filters ("abusefilters") and one for the abuse log, since it is separate from other MediaWiki logs ("abuselog"). It is not possible to create or modify abuse filters using the API. </p> <div class="mw-heading mw-heading3"><h3 id="list_=_abusefilters"><span id="list_.3D_abusefilters"></span>list = abusefilters</h3></div> <p>List information about filters </p> <dl><dt>Parameters</dt> <dd></dd></dl> <ul><li><code>abfstartid</code> - The filter id to start enumerating from</li> <li><code>abfendid</code> - The filter id to stop enumerating at</li> <li><code>abfdir</code> - The direction in which to enumerate (older, newer)</li> <li><code>abfshow</code> - Show only filters which meet these criteria (enabled|!enabled|deleted|!deleted|private|!private|protected|!protected)</li> <li><code>abflimit</code> - The maximum number of filters to list</li> <li><code>abfprop</code> - Which properties to get (id|description|pattern|actions|hits|comments|lasteditor|lastedittime|status|private)</li></ul> <p>When filters are private, some of the properties specified with <code>abfprop</code> will be missing unless you have the appropriate user rights. </p> <dl><dt>Examples</dt> <dd></dd></dl> <div>List non-private abuse filters</div><div class="plainlinks" style="margin-bottom: 0.3em"><b><a class="external text" href="https://en.wikipedia.org/w/api.php?action=query&amp;list=abusefilters&amp;abfshow=!private&amp;abfprop=id%7Chits">api.php<span style="margin:0 0.5em">?</span><wbr />action=query<span style="margin:0 0.5em">&amp;</span><wbr />list=abusefilters<span style="margin:0 0.5em">&amp;</span><wbr />abfshow=!private<span style="margin:0 0.5em">&amp;</span><wbr />abfprop=id|hits</a></b>&#160;<a class="external text" href="https://en.wikipedia.org/wiki/Special:ApiSandbox#action=query&amp;list=abusefilters&amp;abfshow=!private&amp;abfprop=id%7Chits">&#x5b;try in ApiSandbox&#x5d;</a></div><div style="display:block;margin-left:0;overflow:auto;"><table class="mw-collapsible mw-collapsed" style="margin-top:.2em; border:1px solid silver;text-align:left; width: 100%;"><tbody><tr><th style="font-size:112%;background:#F8FCFF;color:black;text-align:center">Result</th></tr><tr><td style="font-size:112%;background:white;border:solid 1px silver;padding:8px"><div><div class="mw-highlight mw-highlight-lang-json mw-content-ltr" dir="ltr"><pre><span></span><span class="p">{</span> <span class="w"> </span><span class="nt">&quot;batchcomplete&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="w"> </span><span class="nt">&quot;continue&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nt">&quot;abfstartid&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">18</span><span class="p">,</span> <span class="w"> </span><span class="nt">&quot;continue&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;-||&quot;</span> <span class="w"> </span><span class="p">},</span> <span class="w"> </span><span class="nt">&quot;query&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nt">&quot;abusefilters&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nt">&quot;id&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span> <span class="w"> </span><span class="nt">&quot;hits&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">41430</span> <span class="w"> </span><span class="p">},</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nt">&quot;id&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span> <span class="w"> </span><span class="nt">&quot;hits&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">957485</span> <span class="w"> </span><span class="p">},</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nt">&quot;id&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span> <span class="w"> </span><span class="nt">&quot;hits&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">5931</span> <span class="w"> </span><span class="p">},</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nt">&quot;id&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">6</span><span class="p">,</span> <span class="w"> </span><span class="nt">&quot;hits&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">19</span> <span class="w"> </span><span class="p">},</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nt">&quot;id&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">8</span><span class="p">,</span> <span class="w"> </span><span class="nt">&quot;hits&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">7</span> <span class="w"> </span><span class="p">},</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nt">&quot;id&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">9</span><span class="p">,</span> <span class="w"> </span><span class="nt">&quot;hits&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">41354</span> <span class="w"> </span><span class="p">},</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nt">&quot;id&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">11</span><span class="p">,</span> <span class="w"> </span><span class="nt">&quot;hits&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">132971</span> <span class="w"> </span><span class="p">},</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nt">&quot;id&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">12</span><span class="p">,</span> <span class="w"> </span><span class="nt">&quot;hits&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">139693</span> <span class="w"> </span><span class="p">},</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nt">&quot;id&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">14</span><span class="p">,</span> <span class="w"> </span><span class="nt">&quot;hits&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">63</span> <span class="w"> </span><span class="p">},</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nt">&quot;id&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">15</span><span class="p">,</span> <span class="w"> </span><span class="nt">&quot;hits&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">15</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="p">]</span> <span class="w"> </span><span class="p">}</span> <span class="p">}</span> </pre></div></div></td></tr></tbody></table></div> <div class="mw-heading mw-heading3"><h3 id="list_=_abuselog"><span id="list_.3D_abuselog"></span>list = abuselog</h3></div> <p>List instances where actions triggered an abuse filter. </p> <dl><dt>Parameters</dt> <dd></dd></dl> <ul><li><code>aflstart</code> - The timestamp to start enumerating from</li> <li><code>aflend</code> - The timestamp to stop enumerating at</li> <li><code>afldir</code> - The direction in which to enumerate (older, newer)</li> <li><code>afluser</code> - Show only entries where the action was attempted by a given user or IP address.</li> <li><code>afltitle</code> - Show only entries where the action involved a given page.</li> <li><code>aflfilter</code> - Show only entries that triggered a given filter ID</li> <li><code>afllimit</code> - The maximum number of entries to list</li> <li><code>aflprop</code> - Which properties to get: (ids|filter|user|ip|title|action|details|result|timestamp|hidden|revid|wiki)</li></ul> <dl><dt>Example</dt> <dd></dd></dl> <div>List instances where the abuse filter was triggered in response to actions from the user "SineBot"</div><div class="plainlinks" style="margin-bottom: 0.3em"><b><a class="external text" href="https://en.wikipedia.org/w/api.php?action=query&amp;list=abuselog&amp;afluser=SineBot&amp;aflprop=ids">api.php<span style="margin:0 0.5em">?</span><wbr />action=query<span style="margin:0 0.5em">&amp;</span><wbr />list=abuselog<span style="margin:0 0.5em">&amp;</span><wbr />afluser=SineBot<span style="margin:0 0.5em">&amp;</span><wbr />aflprop=ids</a></b>&#160;<a class="external text" href="https://en.wikipedia.org/wiki/Special:ApiSandbox#action=query&amp;list=abuselog&amp;afluser=SineBot&amp;aflprop=ids">&#x5b;try in ApiSandbox&#x5d;</a></div><div style="display:block;margin-left:0;overflow:auto;"><table class="mw-collapsible mw-collapsed" style="margin-top:.2em; border:1px solid silver;text-align:left; width: 100%;"><tbody><tr><th style="font-size:112%;background:#F8FCFF;color:black;text-align:center">Result</th></tr><tr><td style="font-size:112%;background:white;border:solid 1px silver;padding:8px"><div><div class="mw-highlight mw-highlight-lang-json mw-content-ltr" dir="ltr"><pre><span></span><span class="p">{</span> <span class="w"> </span><span class="nt">&quot;batchcomplete&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="w"> </span><span class="nt">&quot;continue&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nt">&quot;aflstart&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;2018-03-06T02:34:18Z&quot;</span><span class="p">,</span> <span class="w"> </span><span class="nt">&quot;continue&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;-||&quot;</span> <span class="w"> </span><span class="p">},</span> <span class="w"> </span><span class="nt">&quot;query&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nt">&quot;abuselog&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nt">&quot;id&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">27219261</span><span class="p">,</span> <span class="w"> </span><span class="nt">&quot;filter_id&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;1073&quot;</span> <span class="w"> </span><span class="p">},</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nt">&quot;id&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">26938051</span><span class="p">,</span> <span class="w"> </span><span class="nt">&quot;filter_id&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;&quot;</span> <span class="w"> </span><span class="p">},</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nt">&quot;id&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">23388942</span><span class="p">,</span> <span class="w"> </span><span class="nt">&quot;filter_id&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;1&quot;</span> <span class="w"> </span><span class="p">},</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nt">&quot;id&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">22044912</span><span class="p">,</span> <span class="w"> </span><span class="nt">&quot;filter_id&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;&quot;</span> <span class="w"> </span><span class="p">},</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nt">&quot;id&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">22032235</span><span class="p">,</span> <span class="w"> </span><span class="nt">&quot;filter_id&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;&quot;</span> <span class="w"> </span><span class="p">},</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nt">&quot;id&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">22032196</span><span class="p">,</span> <span class="w"> </span><span class="nt">&quot;filter_id&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;&quot;</span> <span class="w"> </span><span class="p">},</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nt">&quot;id&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">21983882</span><span class="p">,</span> <span class="w"> </span><span class="nt">&quot;filter_id&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;&quot;</span> <span class="w"> </span><span class="p">},</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nt">&quot;id&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">20594818</span><span class="p">,</span> <span class="w"> </span><span class="nt">&quot;filter_id&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;904&quot;</span> <span class="w"> </span><span class="p">},</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nt">&quot;id&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">20593489</span><span class="p">,</span> <span class="w"> </span><span class="nt">&quot;filter_id&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;904&quot;</span> <span class="w"> </span><span class="p">},</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="nt">&quot;id&quot;</span><span class="p">:</span><span class="w"> </span><span class="mi">20590442</span><span class="p">,</span> <span class="w"> </span><span class="nt">&quot;filter_id&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;904&quot;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="p">]</span> <span class="w"> </span><span class="p">}</span> <span class="p">}</span> </pre></div></div></td></tr></tbody></table></div> <div class="mw-heading mw-heading2"><h2 id="Possible_errors">Possible errors</h2></div> <ul><li>Some users might experience that creating new filters or modifying old filters fail and the user just gets redirected to the original page. If the Wiki is using SSL certificates, this error could possibly be because of the <code><a href="/wiki/Special:MyLanguage/Manual:$wgServer" title="Special:MyLanguage/Manual:$wgServer">$wgServer</a><span style="display:none"><a href="/wiki/Manual:$wgServer" title="Manual:$wgServer"> </a></span></code> value, which might be using "http://" instead of "https://". An indication of this error will be, the browser giving https warning for <a href="/wiki/Special:AbuseFilter" title="Special:AbuseFilter">Special:AbuseFilter</a> pages. (<a href="/wiki/Topic:T23dyyih0ofjada5" title="Topic:T23dyyih0ofjada5">Topic:T23dyyih0ofjada5</a>)</li></ul> <div class="mw-heading mw-heading2"><h2 id="Integration_with_other_extensions">Integration with other extensions</h2></div> <p>You can integrate AbuseFilter with other extension in various ways. </p> <div class="mw-heading mw-heading3"><h3 id="Adding_variables_for_filtering">Adding variables for filtering</h3></div> <p>It is possible to add new variables, to be used in abuse filters. A list of examples <a href="/wiki/Special:MyLanguage/Extension:AbuseFilter/Rules_format#Variables_from_AbuseFilter" title="Special:MyLanguage/Extension:AbuseFilter/Rules format">is available</a><span style="display:none"><a href="/wiki/Extension:AbuseFilter/Rules_format#Variables_from_AbuseFilter" title="Extension:AbuseFilter/Rules format"> </a></span>. To do that, you should: </p> <ul><li>Add a handler for the <a href="/wiki/Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilter-builder" title="Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilter-builder">AbuseFilter-builder</a><span style="display:none"><a href="/wiki/Extension:AbuseFilter/Hooks/AbuseFilter-builder" title="Extension:AbuseFilter/Hooks/AbuseFilter-builder"> </a></span> hook. To add a variable, you should use <code>$builder['vars']['variable_name'] = 'i18n-key';</code>, where <code>variable_name</code> is the name of the variable, and <code>i18n-key</code> is the fragment of an i18n key. The full key will be <code>abusefilter-edit-builder-vars-{$your_key}</code>.</li> <li>Add the i18n messages you chose at the previous point.</li> <li>Choose a hook handler where the variable will be computed. Depending on your use case, you could: <ul><li>Implement the <a href="/wiki/Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilter-generateTitleVars" title="Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilter-generateTitleVars">AbuseFilter-generateTitleVars</a><span style="display:none"><a href="/wiki/Extension:AbuseFilter/Hooks/AbuseFilter-generateTitleVars" title="Extension:AbuseFilter/Hooks/AbuseFilter-generateTitleVars"> </a></span> hook; this is specifically thought for page-related variables;</li> <li>Implement the <a href="/wiki/Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilter-generateUserVars" title="Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilter-generateUserVars">AbuseFilter-generateUserVars</a><span style="display:none"><a href="/wiki/Extension:AbuseFilter/Hooks/AbuseFilter-generateUserVars" title="Extension:AbuseFilter/Hooks/AbuseFilter-generateUserVars"> </a></span> hook; this is specifically thought for user-related variables;</li> <li>Implement the <a href="/wiki/Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilter-generateGenericVars" title="Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilter-generateGenericVars">AbuseFilter-generateGenericVars</a><span style="display:none"><a href="/wiki/Extension:AbuseFilter/Hooks/AbuseFilter-generateGenericVars" title="Extension:AbuseFilter/Hooks/AbuseFilter-generateGenericVars"> </a></span> hook; this is for variables not bound to a specific page or user;</li> <li>Implement the <a href="/wiki/Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilterAlterVariables" title="Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilterAlterVariables">AbuseFilterAlterVariables</a><span style="display:none"><a href="/wiki/Extension:AbuseFilter/Hooks/AbuseFilterAlterVariables" title="Extension:AbuseFilter/Hooks/AbuseFilterAlterVariables"> </a></span> hook; this is a bit more flexible than the other hooks, but it has a downside: your variable will not be available when examining past RecentChanges entries. If you want to implement that feature (and it's recommended to do so), you should use one of the hooks listed above, and use its third parameter (<code>$RCRow</code>).</li></ul></li> <li>Inside the hook handler, there are two ways to add a variable: <ul><li>The "direct" way is calling <code class="mw-highlight mw-highlight-lang-php mw-content-ltr" style="" dir="ltr"><span class="nv">$vars</span><span class="o">-&gt;</span><span class="na">setVar</span><span class="p">(</span> <span class="s1">&#39;var_name&#39;</span><span class="p">,</span> <span class="nx">var_value</span> <span class="p">);</span></code>. This is ideal only when the value is easy and quick to compute: the value is computed even if no active filter will use it.</li> <li>The "lazy" way is calling <code class="mw-highlight mw-highlight-lang-php mw-content-ltr" style="" dir="ltr"><span class="nv">$vars</span><span class="o">-&gt;</span><span class="na">setLazyLoadVar</span><span class="p">(</span> <span class="s1">&#39;var_name&#39;</span><span class="p">,</span> <span class="s1">&#39;method_name&#39;</span><span class="p">,</span> <span class="nv">$params</span> <span class="p">);</span></code>. Here, 'method_name' is a (unique) identifier that will be used to compute the variable (it's recommended to prefix it with the name of your extension). To register the method, you should add a handler for the <a href="/wiki/Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilter-computeVariable" title="Special:MyLanguage/Extension:AbuseFilter/Hooks/AbuseFilter-computeVariable">AbuseFilter-computeVariable</a><span style="display:none"><a href="/wiki/Extension:AbuseFilter/Hooks/AbuseFilter-computeVariable" title="Extension:AbuseFilter/Hooks/AbuseFilter-computeVariable"> </a></span> hook; therein, you should check if the $method passed matches your 'method_name', and if so, compute the variable. Lastly, $params is an array of parameters that you'll need to compute the variable; these are passed to the computeVariable hook handler. For an example of this, you can check out CentralAuth's <code>global_user_groups</code>.</li></ul></li></ul> <div class="mw-heading mw-heading3"><h3 id="Adding_custom_actions">Adding custom actions</h3></div> <p>You can add custom action handlers, so that each filter may perform further actions. To do that, you choose a name for the action ('my-action' from now on), and then: </p> <ul><li>Create a class named e.g. MyAction, that should extend \MediaWiki\Extension\AbuseFilter\Consequence, which can also implement HookAborterConsequence or ConsequencesDisablerConsequence</li> <li>Add a subscriber to the AbuseFilterCustomActions hook; the subscriber should provide a callback as documented in the hook documentation, that returns an instance of the class created above, for instance:</li></ul> <div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="k">class</span> <span class="nc">MyAction</span> <span class="k">extends</span> <span class="nx">\MediaWiki\Extension\AbuseFilter\Consequence</span> <span class="p">{</span> <span class="k">public</span> <span class="k">function</span> <span class="nf">run</span><span class="p">()</span> <span class="p">{</span> <span class="k">throw</span> <span class="k">new</span> <span class="nx">\Exception</span><span class="p">(</span> <span class="s1">&#39;Write me&#39;</span> <span class="p">);</span> <span class="p">}</span> <span class="p">}</span> </pre></div> <div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="k">public</span> <span class="k">function</span> <span class="nf">onAbuseFilterCustomActions</span><span class="p">(</span> <span class="o">&amp;</span><span class="nv">$actions</span> <span class="p">)</span> <span class="p">{</span> <span class="nv">$actions</span><span class="p">[]</span> <span class="o">=</span> <span class="k">function</span> <span class="p">(</span> <span class="nx">\MediaWiki\Extension\AbuseFilter\Consequence\Parameters</span> <span class="nv">$params</span><span class="p">,</span> <span class="k">array</span> <span class="nv">$rawParams</span> <span class="p">)</span> <span class="o">:</span> <span class="nx">MyConsequence</span> <span class="p">{</span> <span class="k">return</span> <span class="k">new</span> <span class="nx">MyAction</span><span class="p">(</span> <span class="nv">$params</span><span class="p">,</span> <span class="nv">$rawParams</span> <span class="p">);</span> <span class="p">};</span> <span class="p">}</span> </pre></div> <p>Then you should add the following i18n messages; you can replace 'my_action' with e.g. 'block' to see what the messages are for: </p> <ul><li><code>'abusefilter-edit-action-${my_action}'</code></li> <li><code>'abusefilter-action-${my_action}'</code></li></ul> <div class="mw-heading mw-heading3"><h3 id="Adding_rule_groups">Adding rule groups</h3></div> <p>You can also add extra rule groups, which can be used to group existing abuse filters. Note that, at the moment, each filter can only be in a single group (<a href="https://phabricator.wikimedia.org/T116642" class="extiw" title="phab:T116642">T116642</a>). Currently, the only known consumer of this feature is <a href="/wiki/Special:MyLanguage/Extension:StructuredDiscussions" title="Special:MyLanguage/Extension:StructuredDiscussions">Extension:StructuredDiscussions</a><span style="display:none"><a href="/wiki/Extension:StructuredDiscussions" title="Extension:StructuredDiscussions"> </a></span>. To do that, you should: </p> <ul><li>Append the name of the group to <code>$wgAbuseFilterValidGroups</code>.</li> <li>Add some code to run the filters with your group. Note that AbuseFilter won't do that on its own. To do that, you should construct an <code>AbuseFilterRunner</code> object, passing in the name of your group.</li></ul> <div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div> <ul><li><a href="/wiki/Special:MyLanguage/Help:BlockedExternalDomains" title="Special:MyLanguage/Help:BlockedExternalDomains">Help:BlockedExternalDomains</a><span style="display:none"><a href="/wiki/Help:BlockedExternalDomains" title="Help:BlockedExternalDomains"> </a></span></li> <li><a href="https://meta.wikimedia.org/wiki/Special:MyLanguage/AbuseFilter" class="extiw" title="m:Special:MyLanguage/AbuseFilter">Several WMF wikis where it's enabled</a> (and with which configuration)</li></ul> <style data-mw-deduplicate="TemplateStyles:r6651108">.mw-parser-output table.ombox{margin:4px 10%;border-collapse:collapse;border:1px solid #a2a9b1;background-color:#f8f9fa;color:#333;box-sizing:border-box}.mw-parser-output .ombox td.mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ombox th.mbox-text,.mw-parser-output .ombox td.mbox-text{border:none;padding:0.25em 0.9em;width:100%}.mw-parser-output .ombox td.mbox-image{border:none;text-align:center;padding:2px 0 2px 0.9em}.mw-parser-output .ombox td.mbox-imageright{border:none;text-align:center;padding:2px 0.9em 2px 0}.mw-parser-output table.ombox-notice{border-color:#a2a9b1}.mw-parser-output table.ombox-speedy{background-color:#fee7e6;color:#333}.mw-parser-output table.ombox-speedy,.mw-parser-output table.ombox-delete{border-color:#b32424;border-width:2px}.mw-parser-output table.ombox-content{border-color:#f28500}.mw-parser-output table.ombox-style{border-color:#fc3}.mw-parser-output table.ombox-move{border-color:#9932cc}.mw-parser-output table.ombox-protection{border-color:#a2a9b1;border-width:2px}html body.mediawiki .mw-parser-output .ombox.mbox-small{clear:right;float:right;margin:4px 0 4px 1em;box-sizing:border-box;width:238px;font-size:88%;line-height:1.25em}@media screen{html.skin-theme-clientpref-night .mw-parser-output table.ombox{background-color:transparent;color:inherit}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output table.ombox{background-color:transparent;color:inherit}}</style><table class="ombox ombox-notice plainlinks" role="presentation" style="clear: both; margin-top: 0; margin-bottom: 0;"><tbody><tr><td class="mbox-image"><span class="skin-invert-image" typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/8/8b/Wikimedia-logo_black.svg/40px-Wikimedia-logo_black.svg.png" decoding="async" width="40" height="40" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/8/8b/Wikimedia-logo_black.svg/60px-Wikimedia-logo_black.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/8/8b/Wikimedia-logo_black.svg/80px-Wikimedia-logo_black.svg.png 2x" data-file-width="512" data-file-height="512" /></span></span></td><td class="mbox-text">This extension is being used on one or more <a href="https://meta.wikimedia.org/wiki/Special:MyLanguage/Wikimedia_projects" class="extiw" title="m:Special:MyLanguage/Wikimedia projects">Wikimedia projects</a>. This probably means that the extension is stable and works well enough to be used by such high-traffic websites. Look for this extension's name in Wikimedia's <a class="external text" href="https://noc.wikimedia.org/conf/highlight.php?file=CommonSettings.php">CommonSettings.php</a> and <a class="external text" href="https://noc.wikimedia.org/conf/highlight.php?file=InitialiseSettings.php">InitialiseSettings.php</a> configuration files to see where it's installed. A full list of the extensions installed on a particular wiki can be seen on the wiki's <a href="/wiki/Special:Version" title="Special:Version">Special:Version</a> page.</td></tr></tbody></table> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r6651108"><table class="ombox ombox-notice" role="presentation"><tbody><tr><td class="mbox-image"><span typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/e/ec/OOjs_UI_icon_information-progressive.svg/40px-OOjs_UI_icon_information-progressive.svg.png" decoding="async" width="40" height="40" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/e/ec/OOjs_UI_icon_information-progressive.svg/60px-OOjs_UI_icon_information-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/e/ec/OOjs_UI_icon_information-progressive.svg/80px-OOjs_UI_icon_information-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></span></span></td><td class="mbox-text">This extension is included in the following wiki farms/hosts and/or packages: <style data-mw-deduplicate="TemplateStyles:r6387430">.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li,.mw-parser-output .hlist .mw-empty-elt{display:none}.mw-parser-output .hlist dt:after{content:": "}.mw-parser-output .hlist dd:after,.mw-parser-output .hlist li:after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child:after,.mw-parser-output .hlist dt:last-child:after,.mw-parser-output .hlist li:last-child:after{content:none}.mw-parser-output .hlist dd dd:first-child:before,.mw-parser-output .hlist dd dt:first-child:before,.mw-parser-output .hlist dd li:first-child:before,.mw-parser-output .hlist dt dd:first-child:before,.mw-parser-output .hlist dt dt:first-child:before,.mw-parser-output .hlist dt li:first-child:before,.mw-parser-output .hlist li dd:first-child:before,.mw-parser-output .hlist li dt:first-child:before,.mw-parser-output .hlist li li:first-child:before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child:after,.mw-parser-output .hlist dd dt:last-child:after,.mw-parser-output .hlist dd li:last-child:after,.mw-parser-output .hlist dt dd:last-child:after,.mw-parser-output .hlist dt dt:last-child:after,.mw-parser-output .hlist dt li:last-child:after,.mw-parser-output .hlist li dd:last-child:after,.mw-parser-output .hlist li dt:last-child:after,.mw-parser-output .hlist li li:last-child:after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li:before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child:before,.mw-parser-output .hlist dt ol>li:first-child:before,.mw-parser-output .hlist li ol>li:first-child:before{content:" ("counter(listitem)"\a0 "}</style><div class="hlist"> <ul><li><a href="/wiki/Special:MyLanguage/Canasta" title="Special:MyLanguage/Canasta">Canasta</a><span style="display:none"><a href="/wiki/Canasta" title="Canasta"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/Debian_packages" title="Special:MyLanguage/Debian packages">Debian</a><span style="display:none"><a href="/wiki/Debian_packages" title="Debian packages"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/Fandom" title="Special:MyLanguage/Fandom">Fandom</a><span style="display:none"><a href="/wiki/Fandom" title="Fandom"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/Miraheze" title="Special:MyLanguage/Miraheze">Miraheze</a><span style="display:none"><a href="/wiki/Miraheze" title="Miraheze"> </a></span></li> <li><a rel="nofollow" class="external text" href="https://www.mywikis.com/">MyWikis</a></li> <li><a rel="nofollow" class="external text" href="https://www.pro.wiki/">ProWiki</a></li> <li><a href="/wiki/Special:MyLanguage/ShoutWiki" title="Special:MyLanguage/ShoutWiki">ShoutWiki</a><span style="display:none"><a href="/wiki/ShoutWiki" title="ShoutWiki"> </a></span></li> <li><a rel="nofollow" class="external text" href="https://telepedia.net/">Telepedia</a></li> <li><a href="/wiki/Special:MyLanguage/wiki.gg" title="Special:MyLanguage/wiki.gg">wiki.gg</a><span style="display:none"><a href="/wiki/Wiki.gg" title="Wiki.gg"> </a></span></li> <li><a rel="nofollow" class="external text" href="https://wikiforge.net/">WikiForge</a></li></ul> </div> <small>This is not an authoritative list.</small> <small>Some wiki farms/hosts and/or packages may contain this extension even if they are not listed here.</small> <small>Always check with your wiki farms/hosts or bundle to confirm.</small></td></tr></tbody></table> <!-- NewPP limit report Parsed by mw‐api‐int.codfw.main‐849f99967d‐2wvlf Cached time: 20241123151746 Cache expiry: 2592000 Reduced expiry: false Complications: [vary‐revision‐sha1, show‐toc] CPU time usage: 0.987 seconds Real time usage: 1.268 seconds Preprocessor visited node count: 9408/1000000 Post‐expand include size: 177228/2097152 bytes Template argument size: 38876/2097152 bytes Highest expansion depth: 20/100 Expensive parser function count: 62/500 Unstrip recursion depth: 0/20 Unstrip post‐expand size: 55572/5000000 bytes Lua time usage: 0.437/10.000 seconds Lua memory usage: 18581439/52428800 bytes Number of Wikibase entities loaded: 0/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 856.348 1 -total 63.71% 545.591 1 Template:Extension 34.18% 292.734 100 Template:Ll 25.37% 217.242 150 Template:Pagelang 22.49% 192.609 223 Template:Translatable 12.20% 104.498 2 Template:Mbox 10.61% 90.889 1 Template:Used_by 8.69% 74.386 1 Template:Flatlist 7.91% 67.724 1 Template:Foreach 6.98% 59.784 16 Template:Extension/HookProvided --> <!-- Saved in parser cache with key mediawikiwiki:pcache:idhash:28437-0!canonical and timestamp 20241123151746 and revision id 6853405. Rendering was triggered because: api-parse --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Retrieved from "<a dir="ltr" href="https://www.mediawiki.org/w/index.php?title=Extension:AbuseFilter&amp;oldid=6853405">https://www.mediawiki.org/w/index.php?title=Extension:AbuseFilter&amp;oldid=6853405</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Special:Categories" title="Special:Categories">Categories</a>: <ul><li><a href="/wiki/Category:Extensions_bundled_with_MediaWiki_1.38" title="Category:Extensions bundled with MediaWiki 1.38">Extensions bundled with MediaWiki 1.38</a></li><li><a href="/wiki/Category:Stable_extensions" title="Category:Stable extensions">Stable extensions</a></li><li><a href="/wiki/Category:User_activity_extensions" title="Category:User activity extensions">User activity extensions</a></li><li><a href="/wiki/Category:Special_page_extensions" title="Category:Special page extensions">Special page extensions</a></li><li><a href="/wiki/Category:API_extensions" title="Category:API extensions">API extensions</a></li><li><a href="/wiki/Category:Extensions_supporting_Composer" title="Category:Extensions supporting Composer">Extensions supporting Composer</a></li><li><a href="/wiki/Category:GPL_licensed_extensions" title="Category:GPL licensed extensions">GPL licensed extensions</a></li><li><a href="/wiki/Category:Extensions_in_Wikimedia_version_control" title="Category:Extensions in Wikimedia version control">Extensions in Wikimedia version control</a></li><li><a href="/wiki/Category:ArticleDelete_extensions" title="Category:ArticleDelete extensions">ArticleDelete extensions</a></li><li><a href="/wiki/Category:BeforeCreateEchoEvent_extensions" title="Category:BeforeCreateEchoEvent extensions">BeforeCreateEchoEvent extensions</a></li><li><a href="/wiki/Category:ChangeTagsListActive_extensions" title="Category:ChangeTagsListActive extensions">ChangeTagsListActive extensions</a></li><li><a href="/wiki/Category:CheckUserInsertChangesRow_extensions" title="Category:CheckUserInsertChangesRow extensions">CheckUserInsertChangesRow extensions</a></li><li><a href="/wiki/Category:CheckUserInsertLogEventRow_extensions" title="Category:CheckUserInsertLogEventRow extensions">CheckUserInsertLogEventRow extensions</a></li><li><a href="/wiki/Category:CheckUserInsertPrivateEventRow_extensions" title="Category:CheckUserInsertPrivateEventRow extensions">CheckUserInsertPrivateEventRow extensions</a></li><li><a href="/wiki/Category:ContributionsToolLinks_extensions" title="Category:ContributionsToolLinks extensions">ContributionsToolLinks extensions</a></li><li><a href="/wiki/Category:EditFilterMergedContent_extensions" title="Category:EditFilterMergedContent extensions">EditFilterMergedContent extensions</a></li><li><a href="/wiki/Category:GetAutoPromoteGroups_extensions" title="Category:GetAutoPromoteGroups extensions">GetAutoPromoteGroups extensions</a></li><li><a href="/wiki/Category:GetPreferences_extensions" title="Category:GetPreferences extensions">GetPreferences extensions</a></li><li><a href="/wiki/Category:HistoryPageToolLinks_extensions" title="Category:HistoryPageToolLinks extensions">HistoryPageToolLinks extensions</a></li><li><a href="/wiki/Category:JsonValidateSave_extensions" title="Category:JsonValidateSave extensions">JsonValidateSave extensions</a></li><li><a href="/wiki/Category:ListDefinedTags_extensions" title="Category:ListDefinedTags extensions">ListDefinedTags extensions</a></li><li><a href="/wiki/Category:LoadExtensionSchemaUpdates_extensions" title="Category:LoadExtensionSchemaUpdates extensions">LoadExtensionSchemaUpdates extensions</a></li><li><a href="/wiki/Category:PageSaveComplete_extensions" title="Category:PageSaveComplete extensions">PageSaveComplete extensions</a></li><li><a href="/wiki/Category:ParserOutputStashForEdit_extensions" title="Category:ParserOutputStashForEdit extensions">ParserOutputStashForEdit extensions</a></li><li><a href="/wiki/Category:RecentChange_save_extensions" title="Category:RecentChange save extensions">RecentChange save extensions</a></li><li><a href="/wiki/Category:SaveUserOptions_extensions" title="Category:SaveUserOptions extensions">SaveUserOptions extensions</a></li><li><a href="/wiki/Category:TitleMove_extensions" title="Category:TitleMove extensions">TitleMove extensions</a></li><li><a href="/wiki/Category:UndeletePageToolLinks_extensions" title="Category:UndeletePageToolLinks extensions">UndeletePageToolLinks extensions</a></li><li><a href="/wiki/Category:UploadStashFile_extensions" title="Category:UploadStashFile extensions">UploadStashFile extensions</a></li><li><a href="/wiki/Category:UploadVerifyUpload_extensions" title="Category:UploadVerifyUpload extensions">UploadVerifyUpload extensions</a></li><li><a href="/wiki/Category:UserMergeAccountFields_extensions" title="Category:UserMergeAccountFields extensions">UserMergeAccountFields extensions</a></li><li><a href="/wiki/Category:GetUserPermissionsErrors_extensions" title="Category:GetUserPermissionsErrors extensions">GetUserPermissionsErrors extensions</a></li><li><a href="/wiki/Category:All_extensions" title="Category:All extensions">All extensions</a></li><li><a href="/wiki/Category:Extensions_requiring_Composer_with_git" title="Category:Extensions requiring Composer with git">Extensions requiring Composer with git</a></li><li><a href="/wiki/Category:Extensions_used_on_Wikimedia" title="Category:Extensions used on Wikimedia">Extensions used on Wikimedia</a></li><li><a href="/wiki/Category:Extensions_included_in_Canasta" title="Category:Extensions included in Canasta">Extensions included in Canasta</a></li><li><a href="/wiki/Category:Extensions_available_as_Debian_packages" title="Category:Extensions available as Debian packages">Extensions available as Debian packages</a></li><li><a href="/wiki/Category:Extensions_included_in_Fandom" title="Category:Extensions included in Fandom">Extensions included in Fandom</a></li><li><a href="/wiki/Category:Extensions_included_in_Miraheze" title="Category:Extensions included in Miraheze">Extensions included in Miraheze</a></li><li><a href="/wiki/Category:Extensions_included_in_MyWikis" title="Category:Extensions included in MyWikis">Extensions included in MyWikis</a></li><li><a href="/wiki/Category:Extensions_included_in_ProWiki" title="Category:Extensions included in ProWiki">Extensions included in ProWiki</a></li><li><a href="/wiki/Category:Extensions_included_in_ShoutWiki" title="Category:Extensions included in ShoutWiki">Extensions included in ShoutWiki</a></li><li><a href="/wiki/Category:Extensions_included_in_Telepedia" title="Category:Extensions included in Telepedia">Extensions included in Telepedia</a></li><li><a href="/wiki/Category:Extensions_included_in_wiki.gg" title="Category:Extensions included in wiki.gg">Extensions included in wiki.gg</a></li><li><a href="/wiki/Category:Extensions_included_in_WikiForge" title="Category:Extensions included in WikiForge">Extensions included in WikiForge</a></li><li><a href="/wiki/Category:Spam_management_extensions" title="Category:Spam management extensions">Spam management extensions</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Hidden category: <ul><li><a href="/wiki/Category:Extensions_with_release_branches_compatibility_policy" title="Category:Extensions with release branches compatibility policy">Extensions with release branches compatibility policy</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last edited on 14 November 2024, at 15:26.</li> <li id="footer-info-copyright">Text is available under the <a rel="nofollow" class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-ShareAlike License</a>; additional terms may apply. Text in <a class="external text" href="https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents">the Help: namespace</a> is available under the <a rel="nofollow" class="external text" href="https://creativecommons.org/publicdomain/zero/1.0/">Creative Commons CC0 License</a>. By using this site, you agree to the <a class="external text" href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use">Terms of Use</a> and <a class="external text" href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy Policy</a>.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/Project:About">About mediawiki.org</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Project:General_disclaimer">Disclaimers</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://www.mediawiki.org/wiki/Special:MyLanguage/Code_of_Conduct">Code of Conduct</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Developers</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/www.mediawiki.org">Statistics</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie statement</a></li> <li id="footer-places-mobileview"><a href="//m.mediawiki.org/w/index.php?title=Extension:AbuseFilter&amp;mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-f69cdc8f6-qqs7t","wgBackendResponseTime":131,"wgPageParseReport":{"limitreport":{"cputime":"0.987","walltime":"1.268","ppvisitednodes":{"value":9408,"limit":1000000},"postexpandincludesize":{"value":177228,"limit":2097152},"templateargumentsize":{"value":38876,"limit":2097152},"expansiondepth":{"value":20,"limit":100},"expensivefunctioncount":{"value":62,"limit":500},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":55572,"limit":5000000},"entityaccesscount":{"value":0,"limit":400},"timingprofile":["100.00% 856.348 1 -total"," 63.71% 545.591 1 Template:Extension"," 34.18% 292.734 100 Template:Ll"," 25.37% 217.242 150 Template:Pagelang"," 22.49% 192.609 223 Template:Translatable"," 12.20% 104.498 2 Template:Mbox"," 10.61% 90.889 1 Template:Used_by"," 8.69% 74.386 1 Template:Flatlist"," 7.91% 67.724 1 Template:Foreach"," 6.98% 59.784 16 Template:Extension/HookProvided"]},"scribunto":{"limitreport-timeusage":{"value":"0.437","limit":"10.000"},"limitreport-memusage":{"value":18581439,"limit":52428800}},"cachereport":{"origin":"mw-api-int.codfw.main-849f99967d-2wvlf","timestamp":"20241123151746","ttl":2592000,"transientcontent":false}}});});</script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10