CINXE.COM

Extension:ConfirmEdit - 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:ConfirmEdit - 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":"8eaaaf75-6539-4945-b58b-9f660e5a5d73","wgCanonicalNamespace":"Extension","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":102,"wgPageName":"Extension:ConfirmEdit","wgTitle":"ConfirmEdit","wgCurRevisionId":6858278,"wgRevisionId":6858278,"wgArticleId":12823,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Extensions with release branches compatibility policy","Extensions bundled with MediaWiki 1.18","Stable extensions","Page action extensions","GPL licensed extensions","Extensions in Wikimedia version control","APIGetAllowedParams extensions","AbuseFilterCustomActions extensions","AlternateEditPreview extensions","AuthChangeFormFields extensions","EditFilterMergedContent extensions","EditPage::showEditForm:fields extensions", "EditPageBeforeEditButtons extensions","EmailUser extensions","EmailUserForm extensions","PageSaveComplete extensions","ResourceLoaderRegisterModules extensions","TitleReadWhitelist extensions","All extensions","Extensions used on Wikimedia","Extensions included in BlueSpice","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 semantic::core","Extensions included in ShoutWiki","Extensions included in WikiForge","Edit extensions","Spam management extensions"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"Extension:ConfirmEdit","wgRelevantArticleId":12823,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"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,"wgTranslatePageTranslation":"source","wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"personal","wgULSisCompactLinksEnabled":true,"wgVector2022LanguageInHeader":false,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q21676645","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.pygments":"ready","ext.cite.styles":"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=["ext.pygments.view","ext.cite.ux-enhancements","mediawiki.page.media","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.cite.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/9/9d/FancyCaptcha_screenshot.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="662"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/9/9d/FancyCaptcha_screenshot.png"> <meta property="og:image:width" content="800"> <meta property="og:image:height" content="442"> <meta property="og:image:width" content="640"> <meta property="og:image:height" content="353"> <meta name="viewport" content="width=1120"> <meta property="og:site_name" content="MediaWiki"> <meta property="og:title" content="Extension:ConfirmEdit - 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:ConfirmEdit"> <link rel="alternate" type="application/x-wiki" title="Edit" href="/w/index.php?title=Extension:ConfirmEdit&amp;action=edit"> <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:ConfirmEdit"> <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 mw-editable page-Extension_ConfirmEdit rootpage-Extension_ConfirmEdit 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"> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-add wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q21676645#sitelinks-wikipedia" title="Add interlanguage links" class="wbc-editpage">Add 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%3AConfirmEdit" 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%3AConfirmEdit" 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%3AConfirmEdit" 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%3AConfirmEdit" 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-Drawbacks" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Drawbacks"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>Drawbacks</span> </div> </a> <ul id="toc-Drawbacks-sublist" class="vector-toc-list"> </ul> </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">2</span> <span>Installation</span> </div> </a> <ul id="toc-Installation-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-CAPTCHA_types" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#CAPTCHA_types"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>CAPTCHA types</span> </div> </a> <button aria-controls="toc-CAPTCHA_types-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 CAPTCHA types subsection</span> </button> <ul id="toc-CAPTCHA_types-sublist" class="vector-toc-list"> <li id="toc-QuestyCaptcha" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#QuestyCaptcha"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.1</span> <span>QuestyCaptcha</span> </div> </a> <ul id="toc-QuestyCaptcha-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-ReCaptcha_(NoCaptcha)" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#ReCaptcha_(NoCaptcha)"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.2</span> <span>ReCaptcha (NoCaptcha)</span> </div> </a> <ul id="toc-ReCaptcha_(NoCaptcha)-sublist" class="vector-toc-list"> <li id="toc-reCAPTCHA_v3" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#reCAPTCHA_v3"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.2.1</span> <span>reCAPTCHA v3</span> </div> </a> <ul id="toc-reCAPTCHA_v3-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-SimpleCaptcha_(calculation)" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#SimpleCaptcha_(calculation)"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.3</span> <span>SimpleCaptcha (calculation)</span> </div> </a> <ul id="toc-SimpleCaptcha_(calculation)-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-FancyCaptcha" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#FancyCaptcha"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.4</span> <span>FancyCaptcha</span> </div> </a> <ul id="toc-FancyCaptcha-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-MathCaptcha" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#MathCaptcha"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.5</span> <span>MathCaptcha</span> </div> </a> <ul id="toc-MathCaptcha-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-hCaptcha" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#hCaptcha"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.6</span> <span>hCaptcha</span> </div> </a> <ul id="toc-hCaptcha-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Turnstile" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Turnstile"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.7</span> <span>Turnstile</span> </div> </a> <ul id="toc-Turnstile-sublist" class="vector-toc-list"> </ul> </li> </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">4</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-Don&#039;t_require_CAPTCHA_from_some_users" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Don&#039;t_require_CAPTCHA_from_some_users"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.1</span> <span>Don't require CAPTCHA from some users</span> </div> </a> <ul id="toc-Don&#039;t_require_CAPTCHA_from_some_users-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Set_actions_that_require_CAPTCHA" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Set_actions_that_require_CAPTCHA"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.2</span> <span>Set actions that require CAPTCHA</span> </div> </a> <ul id="toc-Set_actions_that_require_CAPTCHA-sublist" class="vector-toc-list"> <li id="toc-URL_and_IP_whitelists" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#URL_and_IP_whitelists"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.2.1</span> <span>URL and IP whitelists</span> </div> </a> <ul id="toc-URL_and_IP_whitelists-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Regular_expressions" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Regular_expressions"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.2.2</span> <span>Regular expressions</span> </div> </a> <ul id="toc-Regular_expressions-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Failed_login_attempts" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Failed_login_attempts"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.2.3</span> <span>Failed login attempts</span> </div> </a> <ul id="toc-Failed_login_attempts-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> </ul> </li> <li id="toc-Wikimedia_configuration" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Wikimedia_configuration"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>Wikimedia configuration</span> </div> </a> <button aria-controls="toc-Wikimedia_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 Wikimedia configuration subsection</span> </button> <ul id="toc-Wikimedia_configuration-sublist" class="vector-toc-list"> <li id="toc-EmergencyCaptcha_mode" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#EmergencyCaptcha_mode"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.1</span> <span>EmergencyCaptcha mode</span> </div> </a> <ul id="toc-EmergencyCaptcha_mode-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Rate-limiting" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Rate-limiting"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.2</span> <span>Rate-limiting</span> </div> </a> <ul id="toc-Rate-limiting-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Authors" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Authors"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>Authors</span> </div> </a> <ul id="toc-Authors-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-References" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#References"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>References</span> </div> </a> <ul id="toc-References-sublist" class="vector-toc-list"> </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">8</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">ConfirmEdit</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/confirmedit_captcha_extension/" class="extiw" title="phab:tag/confirmedit captcha extension/"><b>#ConfirmEdit_CAPTCHA_extension</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:ConfirmEdit" 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:ConfirmEdit" 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:ConfirmEdit"><span>Read</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Extension:ConfirmEdit&amp;action=edit" title="Edit the source code of this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Extension:ConfirmEdit&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:ConfirmEdit"><span>Read</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Extension:ConfirmEdit&amp;action=edit" title="Edit the source code of this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Extension:ConfirmEdit&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:ConfirmEdit" 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:ConfirmEdit" 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:ConfirmEdit&amp;oldid=6858278" 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:ConfirmEdit&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%3AConfirmEdit&amp;id=6858278&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%3AConfirmEdit"><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%3AConfirmEdit"><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%3AConfirmEdit"><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%3AConfirmEdit&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:ConfirmEdit&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 id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q21676645" 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%3AConfirmEdit&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:ConfirmEdit/de" class="mw-pt-progress mw-pt-progress--med" title="Extension:BestätigungDerBearbeitung (44% translated)" lang="de" dir="ltr">Deutsch</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:ConfirmEdit/tr" class="mw-pt-progress mw-pt-progress--high" title="Extension:ConfirmEdit (83% translated)" lang="tr" dir="ltr">Türkçe</a></li> <li><a href="/wiki/Extension:ConfirmEdit/fr" class="mw-pt-progress mw-pt-progress--complete" title="Extension:ConfirmEdit (100% translated)" lang="fr" dir="ltr">français</a></li> <li><a href="/wiki/Extension:ConfirmEdit/it" class="mw-pt-progress mw-pt-progress--med" title="Estensione:ConfirmEdit (23% translated)" lang="it" dir="ltr">italiano</a></li> <li><a href="/wiki/Extension:ConfirmEdit/pl" class="mw-pt-progress mw-pt-progress--low" title="Extension:ConfirmEdit/pl (3% translated)" lang="pl" dir="ltr">polski</a></li> <li><a href="/wiki/Extension:ConfirmEdit/pt" class="mw-pt-progress mw-pt-progress--low" title="Extensão:ConfirmEdit (2% translated)" lang="pt" dir="ltr">português</a></li> <li><a href="/wiki/Extension:ConfirmEdit/scn" class="mw-pt-progress mw-pt-progress--med" title="Estensioni:ConfirmEdit (30% translated)" lang="scn" dir="ltr">sicilianu</a></li> <li><a href="/wiki/Extension:ConfirmEdit/cs" class="mw-pt-progress mw-pt-progress--med" title="Rozšíření:ConfirmEdit (15% translated)" lang="cs" dir="ltr">čeština</a></li> <li><a href="/wiki/Extension:ConfirmEdit/ru" class="mw-pt-progress mw-pt-progress--low" title="Расширение:ConfirmEdit/ru (9% translated)" lang="ru" dir="ltr">русский</a></li> <li><a href="/wiki/Extension:ConfirmEdit/ar" class="mw-pt-progress mw-pt-progress--med" title="امتداد:تأكيد_التعديل (26% translated)" lang="ar" dir="rtl">العربية</a></li> <li><a href="/wiki/Extension:ConfirmEdit/zh" class="mw-pt-progress mw-pt-progress--med" title="Extension: (22% translated)" lang="zh" dir="ltr">中文</a></li> <li><a href="/wiki/Extension:ConfirmEdit/ja" class="mw-pt-progress mw-pt-progress--med" title="Extension:ConfirmEdit (34% translated)" lang="ja" 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.18#Bundled_extensions" title="Special:MyLanguage/MediaWiki 1.18">comes with MediaWiki 1.18</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">ConfirmEdit</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:MediaWiki_Extension_ConfirmEdit.png" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/c/c5/MediaWiki_Extension_ConfirmEdit.png/375px-MediaWiki_Extension_ConfirmEdit.png" decoding="async" width="375" height="69" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/c/c5/MediaWiki_Extension_ConfirmEdit.png/563px-MediaWiki_Extension_ConfirmEdit.png 1.5x, //upload.wikimedia.org/wikipedia/commons/c/c5/MediaWiki_Extension_ConfirmEdit.png 2x" data-file-width="692" data-file-height="128" /></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:Parameters_to_index.php#Actions" title="Special:MyLanguage/Manual:Parameters to index.php">Page action</a><span style="display:none"><a href="/wiki/Manual:Parameters_to_index.php#Actions" title="Manual:Parameters to index.php"> </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>Adds CAPTCHAs for page saves and other user actions</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>Brooke Vibber</li> <li>Florian Schmidt</li> <li>Sam Reed</li></ul></td> </tr> <tr> <td><b><a href="/wiki/Special:MyLanguage/Template:Extension#version" title="Special:MyLanguage/Template:Extension">Latest version</a><span style="display:none"><a href="/wiki/Template:Extension#version" title="Template:Extension"> </a></span></b></td> <td>1.6.0&#160;(Continuous updates)</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</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/ConfirmEdit" title="Special:ExtensionDistributor/ConfirmEdit"><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-ConfirmEdit/archive/master.tar.gz">Download Git master</a></span></li> <li><a href="https://gerrit.wikimedia.org/g/mediawiki/extensions/ConfirmEdit" class="extiw" title="git:mediawiki/extensions/ConfirmEdit">browse&#160;repository</a> (<a href="https://phabricator.wikimedia.org/diffusion/ECOE" class="extiw" title="phab:diffusion/ECOE">Phabricator</a> ·&#160;<a rel="nofollow" class="external text" href="https://github.com/wikimedia/mediawiki-extensions-ConfirmEdit">GitHub</a>)</li> <li><a href="https://gerrit.wikimedia.org/g/mediawiki/extensions/ConfirmEdit/%2Blog/master" class="extiw" title="git:mediawiki/extensions/ConfirmEdit/+log/master">commit&#160;history</a></li> <li><a rel="nofollow" class="external text" href="https://github.com/wikimedia/mediawiki-extensions-ConfirmEdit/graphs/contributors">repository contributors (GitHub)</a></li> <li><a href="https://gerrit.wikimedia.org/r/q/project:mediawiki/extensions/ConfirmEdit" class="extiw" title="gerrit:q/project:mediawiki/extensions/ConfirmEdit">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">$wgAllowConfirmedEmail</span></li> <li><span class="configvariable">$wgCaptchaBadLoginExpiration</span></li> <li><span class="configvariable">$wgCaptchaTriggersOnNamespace</span></li> <li><span class="configvariable">$wgCaptchaStorageClass</span></li> <li><span class="configvariable" title="Feature flag to toggle list of available custom actions to enable in AbuseFilter. See AbuseFilterHooks::onAbuseFilterCustomActions">$wgConfirmEditEnabledAbuseFilterCustomActions</span></li> <li><span class="configvariable">$wgCaptchaSessionExpiration</span></li> <li><span class="configvariable">$wgCaptchaRegexes</span></li> <li><span class="configvariable">$wgCaptchaWhitelistIP</span></li> <li><span class="configvariable">$wgCaptchaWhitelist</span></li> <li><span class="configvariable">$wgCaptchaTriggers</span></li> <li><span class="configvariable">$wgCaptchaBadLoginPerUserAttempts</span></li> <li><span class="configvariable">$wgCaptchaBadLoginPerUserExpiration</span></li> <li><span class="configvariable">$wgCaptcha</span></li> <li><span class="configvariable">$wgCaptchaBadLoginAttempts</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>skipcaptcha</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/APIGetAllowedParams" title="Special:MyLanguage/Manual:Hooks/APIGetAllowedParams">APIGetAllowedParams</a><span style="display:none"><a href="/wiki/Manual:Hooks/APIGetAllowedParams" title="Manual:Hooks/APIGetAllowedParams"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Manual:Hooks/AbuseFilterCustomActions" class="new" title="Special:MyLanguage/Manual:Hooks/AbuseFilterCustomActions (page does not exist)">AbuseFilterCustomActions</a><span style="display:none"><a href="/w/index.php?title=Manual:Hooks/AbuseFilterCustomActions&amp;action=edit&amp;redlink=1" class="new" title="Manual:Hooks/AbuseFilterCustomActions (page does not exist)"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Manual:Hooks/AlternateEditPreview" title="Special:MyLanguage/Manual:Hooks/AlternateEditPreview">AlternateEditPreview</a><span style="display:none"><a href="/wiki/Manual:Hooks/AlternateEditPreview" title="Manual:Hooks/AlternateEditPreview"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Manual:Hooks/AuthChangeFormFields" title="Special:MyLanguage/Manual:Hooks/AuthChangeFormFields">AuthChangeFormFields</a><span style="display:none"><a href="/wiki/Manual:Hooks/AuthChangeFormFields" title="Manual:Hooks/AuthChangeFormFields"> </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/EditPage::showEditForm:fields" title="Special:MyLanguage/Manual:Hooks/EditPage::showEditForm:fields">EditPage::showEditForm:fields</a><span style="display:none"><a href="/wiki/Manual:Hooks/EditPage::showEditForm:fields" title="Manual:Hooks/EditPage::showEditForm:fields"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Manual:Hooks/EditPageBeforeEditButtons" title="Special:MyLanguage/Manual:Hooks/EditPageBeforeEditButtons">EditPageBeforeEditButtons</a><span style="display:none"><a href="/wiki/Manual:Hooks/EditPageBeforeEditButtons" title="Manual:Hooks/EditPageBeforeEditButtons"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Manual:Hooks/EmailUser" title="Special:MyLanguage/Manual:Hooks/EmailUser">EmailUser</a><span style="display:none"><a href="/wiki/Manual:Hooks/EmailUser" title="Manual:Hooks/EmailUser"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Manual:Hooks/EmailUserForm" title="Special:MyLanguage/Manual:Hooks/EmailUserForm">EmailUserForm</a><span style="display:none"><a href="/wiki/Manual:Hooks/EmailUserForm" title="Manual:Hooks/EmailUserForm"> </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/ResourceLoaderRegisterModules" title="Special:MyLanguage/Manual:Hooks/ResourceLoaderRegisterModules">ResourceLoaderRegisterModules</a><span style="display:none"><a href="/wiki/Manual:Hooks/ResourceLoaderRegisterModules" title="Manual:Hooks/ResourceLoaderRegisterModules"> </a></span></li><li><a href="/wiki/Special:MyLanguage/Manual:Hooks/TitleReadWhitelist" title="Special:MyLanguage/Manual:Hooks/TitleReadWhitelist">TitleReadWhitelist</a><span style="display:none"><a href="/wiki/Manual:Hooks/TitleReadWhitelist" title="Manual:Hooks/TitleReadWhitelist"> </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>158 (Ranked 35<sup>th</sup>)</td> </tr> <tr> <td title=""><a rel="nofollow" class="external text" href="https://wikiapiary.com/wiki/Extension:ConfirmEdit"><b>Public wikis using</b></a></td> <td>957 (Ranked 278<sup>th</sup>)</td> </tr> <tr> <td colspan="2" class="ext-infobox-translate"> <a href="https://translatewiki.net/wiki/Special:Translate/ext-confirmedit" class="extiw" title="translatewiki:Special:Translate/ext-confirmedit">Translate the ConfirmEdit 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/MediaWiki-Vagrant#Using_roles" title="Special:MyLanguage/MediaWiki-Vagrant">Vagrant role</a><span style="display:none"><a href="/wiki/MediaWiki-Vagrant#Using_roles" title="MediaWiki-Vagrant"> </a></span></b></td> <td><a class="external text" href="https://doc.wikimedia.org/mediawiki-vagrant/puppet_classes/role_3A_3Aconfirmedit.html">confirmedit</a></td> </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/confirmedit_captcha_extension" class="extiw" title="phab:tag/confirmedit captcha extension">Open tasks</a> · <a class="external text" href="https://phabricator.wikimedia.org/maniphest/task/create/?projects=ConfirmEdit_CAPTCHA_extension">Report a bug</a></td> </tr> </tbody></table> <p>The <b>ConfirmEdit</b> extension lets you use various <a href="https://en.wikipedia.org/wiki/CAPTCHA" class="extiw" title="w:CAPTCHA">CAPTCHA</a> techniques to try to prevent <a href="https://en.wikipedia.org/wiki/spambot" class="extiw" title="w:spambot">spambots</a> and other automated tools from editing your wiki, as well as to foil automated login attempts that try to guess passwords. </p><p>ConfirmEdit ships with several techniques/modules to generate a captcha. </p> <table class="wikitable"> <tbody><tr> <th>Module</th> <th>Description</th> <th>Effectiveness at stopping spam </th></tr> <tr> <td><code>SimpleCaptcha</code></td> <td>Users have to solve a <b>simple</b> math problem.</td> <td>Low </td></tr> <tr> <td><code>FancyCaptcha</code></td> <td>Users have to identify a series of characters displayed in a stylized way.</td> <td>Low </td></tr> <tr> <td><code>MathCaptcha</code></td> <td>Users have to solve a math problem that's displayed as an image.</td> <td>Low </td></tr> <tr> <td><code><a href="/wiki/Special:MyLanguage/Extension:QuestyCaptcha" title="Special:MyLanguage/Extension:QuestyCaptcha">QuestyCaptcha</a></code></td> <td>Users have to answer a question out of a series of questions defined by the administrator(s).</td> <td>Very high, until cracked </td></tr> <tr> <td><code>ReCaptcha NoCaptcha</code> </td> <td>Users are presented with a JavaScript-based check of humanity. If the check is failed, a puzzle is presented. </td> <td>Medium to low </td></tr> <tr> <td><code>hCaptcha</code> </td> <td>Similar to reCAPTCHA, but is arguably more effective than reCAPTCHA because of its <a rel="nofollow" class="external text" href="https://www.hcaptcha.com/accessibility">different approach to accessibility-friendly captchas</a>. </td> <td>Unknown </td></tr> <tr> <td><code>Turnstile</code> </td> <td>Cloudflare <a rel="nofollow" class="external text" href="https://www.cloudflare.com/en-us/products/turnstile/">Turnstile</a>. Human actionless (or click the box) bot detector. </td> <td>Unknown </td></tr></tbody></table> <p>Some of these modules require additional setup work: </p> <ul><li>MathCaptcha requires both the presence of TeX and, for versions of MediaWiki after 1.17, the <a href="/wiki/Special:MyLanguage/Extension:Math" title="Special:MyLanguage/Extension:Math">Math</a><span style="display:none"><a href="/wiki/Extension:Math" title="Extension:Math"> </a></span> extension;</li> <li>FancyCaptcha requires running a preliminary setup script in Python.</li></ul> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="Drawbacks">Drawbacks</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extension:ConfirmEdit&amp;action=edit&amp;section=1" title="Edit section: Drawbacks"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>CAPTCHAs reduce accessibility and cause inconvenience to human users. </p><p>They also are not 100% effective against bots, and they will not protect your wiki from spammers who are willing and able to use human labor to get through the CAPTCHAs. You may wish to use ConfirmEdit in conjunction with other <a href="/wiki/Special:MyLanguage/Manual:Combating_spam" title="Special:MyLanguage/Manual:Combating spam">anti-spam features</a>. Regardless of the solution you use, if you have a publicly-editable wiki, it's important to keep monitoring the "Recent changes" page. </p> <div class="mw-heading mw-heading2"><h2 id="Installation">Installation</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extension:ConfirmEdit&amp;action=edit&amp;section=2" title="Edit section: Installation"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r6651107"><div role="note" class="note note-info">ConfirmEdit may not work if used with a MediaWiki version different from the one specified when downloading via the "Extension distributor".</div> <ul><li><a href="/wiki/Special:ExtensionDistributor/ConfirmEdit" title="Special:ExtensionDistributor/ConfirmEdit">Download</a> and move the extracted <code>ConfirmEdit</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/ConfirmEdit</code></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;ConfirmEdit&#39;</span> <span class="p">);</span> </pre></div></li> <li><a href="#CAPTCHA_types">Enable the CAPTCHA type</a> which should be used</li> <li><a href="#Configuration">Configure</a> as needed</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> <p><br /> <b>Vagrant installation:</b> </p> <ul><li>If using <a href="/wiki/Special:MyLanguage/MediaWiki-Vagrant" title="Special:MyLanguage/MediaWiki-Vagrant">Vagrant</a><span style="display:none"><a href="/wiki/MediaWiki-Vagrant" title="MediaWiki-Vagrant"> </a></span>, install with <code>vagrant roles enable confirmedit --provision</code></li></ul> <div class="mw-heading mw-heading2"><h2 id="CAPTCHA_types">CAPTCHA types</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extension:ConfirmEdit&amp;action=edit&amp;section=3" title="Edit section: CAPTCHA types"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>There are numerous different CAPTCHA types included with ConfirmEdit. </p> <div class="mw-heading mw-heading3"><h3 id="QuestyCaptcha">QuestyCaptcha</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extension:ConfirmEdit&amp;action=edit&amp;section=4" title="Edit section: QuestyCaptcha"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>This module presents a question, and the user supplies the answer. You provide the questions in the configuration. This module has proven to offer a strong mechanism against spambots; it should also have the advantage of better <a href="/wiki/Special:MyLanguage/Accessibility" title="Special:MyLanguage/Accessibility">accessibility</a>, as textual questions can be read by text-to-speech software allowing visually impaired users (but not bots) to answer correctly. </p><p>Add the following to <code>LocalSettings.php</code> to enable this CAPTCHA, editing the Q&amp;A: </p> <div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="nx">wfLoadExtensions</span><span class="p">([</span> <span class="s1">&#39;ConfirmEdit&#39;</span><span class="p">,</span> <span class="s1">&#39;ConfirmEdit/QuestyCaptcha&#39;</span> <span class="p">]);</span> <span class="c1">// Add your questions in LocalSettings.php using this format:</span> <span class="nv">$wgCaptchaQuestions</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">&#39;What is the capital of France?&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;Paris&#39;</span><span class="p">,</span> <span class="s1">&#39;What is the capital of Spain&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;MADRID&#39;</span><span class="p">,</span> <span class="c1">// Answers are case insensitive</span> <span class="s1">&#39;What is the name of this wiki?&#39;</span> <span class="o">=&gt;</span> <span class="nv">$wgSitename</span><span class="p">,</span> <span class="c1">// You can use variables</span> <span class="s1">&#39;How many fingers does a hand have?&#39;</span> <span class="o">=&gt;</span> <span class="p">[</span> <span class="mi">5</span><span class="p">,</span> <span class="s1">&#39;five&#39;</span> <span class="p">],</span> <span class="c1">// A question may have many answers</span> <span class="p">];</span> </pre></div> <p>It will randomly choose a question from those supplied. </p><p>The minimum is one. </p> <ul><li>QuestyCaptcha is case-insensitive. If the answer is "Paris" and the user writes "paris", or if the answer is "paris" and the user writes "Paris", it will still work.</li> <li>If the answer has a special character like "ó", you may write an answer with "ó" and another with "o" (where "o" replaces "ó"), just in case. For example, if the answer is "canción" you can use <code>[ 'cancion', 'canción' ]</code> in case the user writes "cancion".</li> <li>The answer must be easy to guess for a human interested in your wiki, but not by an automatic program. Ideally, it should not be contained in the text of the question; you can try and edit the captcha help messages and provide the solution to the captcha response there.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">&#91;</span>1<span class="cite-bracket">&#93;</span></a></sup></li> <li>Change the questions when/if they start proving ineffective; this may never happen if your wiki is not specifically targeted.</li> <li>Don't ever reuse questions already used by you or others in the past: spambots are known to remember a question and its answer forever once they break it.</li> <li>You can even <a rel="nofollow" class="external text" href="https://www.thingelstad.com/2013/07/09/stopping-mediawiki-spam.html"><b>dynamically generate questy captchas</b></a> in the configuration. <b>DO NOT</b> use an exact copy of the dynamic questions from the link. Spammers have cracked them. However, other dynamic questions are highly effective in the style of the questions presented.</li> <li>There is a separate extension to ConfirmEdit called <a href="/wiki/Extension:QuestyCaptchaEditor" title="Extension:QuestyCaptchaEditor">QuestyCaptchaEditor</a> which provides an on-wiki special page for managing QuestyCaptcha question+answer(s) pairings. You may wish to consider installing it if it's desirable to reduce sysadmin intervention when it comes to managing the CAPTCHA questions and their answers.</li></ul> <p><span class="anchor" id="ReCaptcha"></span> </p> <div class="mw-heading mw-heading3"><h3 id="ReCaptcha_(NoCaptcha)"><span id="ReCaptcha_.28NoCaptcha.29"></span>ReCaptcha (NoCaptcha)</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extension:ConfirmEdit&amp;action=edit&amp;section=5" title="Edit section: ReCaptcha (NoCaptcha)"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <table class="warning-message" style="background-color: var( --background-color-error-subtle, #ffe9e5 ); color: var( --color-base, #202122 ); border: 1px var( --border-color-error, #9f3526 ) solid; box-sizing: border-box; margin: 0.5em 0; padding: 0.5em;"><tbody><tr><td style="white-space: nowrap; vertical-align: top;"><span style="position: relative; top: -2px;"><span typeof="mw:File"><span><img alt="Warning" src="//upload.wikimedia.org/wikipedia/commons/thumb/b/bf/OOjs_UI_icon_notice-destructive.svg/18px-OOjs_UI_icon_notice-destructive.svg.png" decoding="async" width="18" height="18" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/b/bf/OOjs_UI_icon_notice-destructive.svg/27px-OOjs_UI_icon_notice-destructive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/b/bf/OOjs_UI_icon_notice-destructive.svg/36px-OOjs_UI_icon_notice-destructive.svg.png 2x" data-file-width="20" data-file-height="20" /></span></span></span> <b>Warning:</b> </td><td style="padding-left: 0.5em vertical-align: top;">ReCaptcha has been cracked by most spambots targeting wikis, mainly due to its accessible captcha alternative.</td></tr></tbody></table> <p>The new generation of ReCaptcha, called <i>NoCaptcha</i>, was introduced by Google back in December 2014 and reduces the need for humans to solve a CAPTCHA.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">&#91;</span>2<span class="cite-bracket">&#93;</span></a></sup> Based on a user-side JavaScript (which can't be <i>controlled</i> by the user, the administrator), reCaptcha tries to identify the site user as a human by analyzing their browsing behavior on the page. The user then has to click an "I'm not a robot" checkbox and (in the best case) doesn't have to do anything further to prove they're a human. In some cases, the user still has to solve a CAPTCHA image. </p> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r6651107"><div role="note" class="note note-info">ReCaptcha will not work with the Mobile Source Editor and some extensions.</div> <p>This module implements the new ReCaptcha NoCaptcha solution in ConfirmEdit. </p><p>You still need a public and a secret key (which you can retrieve from the <a rel="nofollow" class="external text" href="https://www.google.com/recaptcha/admin">ReCaptcha admin panel</a> – change v2, v3 not work) and install the plugin with: </p> <div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="nx">wfLoadExtensions</span><span class="p">([</span> <span class="s1">&#39;ConfirmEdit&#39;</span><span class="p">,</span> <span class="s1">&#39;ConfirmEdit/ReCaptchaNoCaptcha&#39;</span> <span class="p">]);</span> <span class="nv">$wgReCaptchaSiteKey</span> <span class="o">=</span> <span class="s1">&#39;your public/site key here&#39;</span><span class="p">;</span> <span class="nv">$wgReCaptchaSecretKey</span> <span class="o">=</span> <span class="s1">&#39;your private key here&#39;</span><span class="p">;</span> </pre></div> <p>There is an additional configuration option for this module, <code class="mw-highlight mw-highlight-lang-php mw-content-ltr" style="" dir="ltr"><span class="nv">$wgReCaptchaSendRemoteIP</span></code> (default: <code class="mw-highlight mw-highlight-lang-php mw-content-ltr" style="" dir="ltr"><span class="k">false</span></code>), which, if set to <code class="mw-highlight mw-highlight-lang-php mw-content-ltr" style="" dir="ltr"><span class="k">true</span></code>, sends the IP address of the current user to a server from Google while verifying the CAPTCHA. You can improve the privacy for your users if you keep this set to <code class="mw-highlight mw-highlight-lang-php mw-content-ltr" style="" dir="ltr"><span class="k">false</span></code>. <b>However</b>, remember that this module adds a client-side JavaScript code, directly loaded from a server from Google, which already can collect the IP address of the user (combined with other data, too) and can <b>not</b> be limited by a configuration option. This will only work on the standard MediaWiki editor. </p> <div class="mw-heading mw-heading4"><h4 id="reCAPTCHA_v3">reCAPTCHA v3</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extension:ConfirmEdit&amp;action=edit&amp;section=6" title="Edit section: reCAPTCHA v3"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Currently, there is no official way to implement version 3 of Google reCAPTCHA. </p> <div class="mw-heading mw-heading3"><h3 id="SimpleCaptcha_(calculation)"><span id="SimpleCaptcha_.28calculation.29"></span>SimpleCaptcha (calculation)</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extension:ConfirmEdit&amp;action=edit&amp;section=7" title="Edit section: SimpleCaptcha (calculation)"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <table class="warning-message" style="background-color: var( --background-color-error-subtle, #ffe9e5 ); color: var( --color-base, #202122 ); border: 1px var( --border-color-error, #9f3526 ) solid; box-sizing: border-box; margin: 0.5em 0; padding: 0.5em;"><tbody><tr><td style="white-space: nowrap; vertical-align: top;"><span style="position: relative; top: -2px;"><span typeof="mw:File"><span><img alt="Warning" src="//upload.wikimedia.org/wikipedia/commons/thumb/b/bf/OOjs_UI_icon_notice-destructive.svg/18px-OOjs_UI_icon_notice-destructive.svg.png" decoding="async" width="18" height="18" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/b/bf/OOjs_UI_icon_notice-destructive.svg/27px-OOjs_UI_icon_notice-destructive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/b/bf/OOjs_UI_icon_notice-destructive.svg/36px-OOjs_UI_icon_notice-destructive.svg.png 2x" data-file-width="20" data-file-height="20" /></span></span></span> <b>Warning:</b> </td><td style="padding-left: 0.5em vertical-align: top;">This type is used by very few wikis, if any, probably because of scarce effectiveness.</td></tr></tbody></table> <figure class="mw-halign-right" typeof="mw:File/Thumb"><a href="/wiki/File:SimleCaptcha_screenshot.png" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/8/8a/SimleCaptcha_screenshot.png/350px-SimleCaptcha_screenshot.png" decoding="async" width="350" height="68" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/8/8a/SimleCaptcha_screenshot.png/525px-SimleCaptcha_screenshot.png 1.5x, //upload.wikimedia.org/wikipedia/commons/8/8a/SimleCaptcha_screenshot.png 2x" data-file-width="685" data-file-height="133" /></a><figcaption>A simple math question</figcaption></figure> <p>This is the default CAPTCHA. </p><p>This module provides a simple addition or subtraction question for the user. </p><p>Add the following lines to <code>LocalSettings.php</code> in the root of your MediaWiki to enable this CAPTCHA: </p> <div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="nv">$wgCaptchaClass</span> <span class="o">=</span> <span class="s1">&#39;SimpleCaptcha&#39;</span><span class="p">;</span> </pre></div> <p>Note that the display of a trivial maths problem as plaintext yields a captcha which can be trivially solved by automated means; as of 2012, sites using SimpleCaptcha are receiving significant amounts of spam and many automated registrations of spurious new accounts. Wikis currently using this as the default should therefore migrate to one of the other CAPTCHAs. </p> <div class="mw-heading mw-heading3"><h3 id="FancyCaptcha">FancyCaptcha</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extension:ConfirmEdit&amp;action=edit&amp;section=8" title="Edit section: FancyCaptcha"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <table class="warning-message" style="background-color: var( --background-color-error-subtle, #ffe9e5 ); color: var( --color-base, #202122 ); border: 1px var( --border-color-error, #9f3526 ) solid; box-sizing: border-box; margin: 0.5em 0; padding: 0.5em;"><tbody><tr><td style="white-space: nowrap; vertical-align: top;"><span style="position: relative; top: -2px;"><span typeof="mw:File"><span><img alt="Warning" src="//upload.wikimedia.org/wikipedia/commons/thumb/b/bf/OOjs_UI_icon_notice-destructive.svg/18px-OOjs_UI_icon_notice-destructive.svg.png" decoding="async" width="18" height="18" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/b/bf/OOjs_UI_icon_notice-destructive.svg/27px-OOjs_UI_icon_notice-destructive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/b/bf/OOjs_UI_icon_notice-destructive.svg/36px-OOjs_UI_icon_notice-destructive.svg.png 2x" data-file-width="20" data-file-height="20" /></span></span></span> <b>Warning:</b> </td><td style="padding-left: 0.5em vertical-align: top;">This type is used by very few wikis outside WMF, if any, probably because of scarce effectiveness.</td></tr></tbody></table> <figure class="mw-default-size" typeof="mw:File/Thumb"><a href="/wiki/File:FancyCaptcha_screenshot.png" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/9/9d/FancyCaptcha_screenshot.png/220px-FancyCaptcha_screenshot.png" decoding="async" width="220" height="121" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/9/9d/FancyCaptcha_screenshot.png/330px-FancyCaptcha_screenshot.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/9/9d/FancyCaptcha_screenshot.png/440px-FancyCaptcha_screenshot.png 2x" data-file-width="462" data-file-height="255" /></a><figcaption></figcaption></figure> <p>This module displays a stylized image of a set of characters. </p><p><a rel="nofollow" class="external text" href="https://pypi.org/project/Pillow/">Pillow</a> must be installed to create the set of images initially, but isn't needed after that (can be installed with <code>pip install Pillow</code> in most environments). </p> <ol><li>Add the following lines to <code>LocalSettings.php</code> in the root of your MediaWiki installation: <dl><dd><code>wfLoadExtensions([ 'ConfirmEdit', 'ConfirmEdit/FancyCaptcha' ]);<br />$wgCaptchaClass = 'FancyCaptcha';</code></dd></dl></li> <li>In <code>LocalSettings.php</code>, set the variable <code class="mw-highlight mw-highlight-lang-php mw-content-ltr" style="" dir="ltr"><span class="nv">$wgCaptchaDirectory</span></code> to the directory where you will store Captcha images. <b>Note:</b> use the absolute directory path or relative to your wiki's installation directory Below it set <code class="mw-highlight mw-highlight-lang-php mw-content-ltr" style="" dir="ltr"><span class="nv">$wgCaptchaSecret</span></code> to your passphrase.</li> <li>Create the images by running the following: <dl><dd><code>python /path/to/captcha.py --font=&lt;font&gt; --wordlist=&lt;wordlist&gt; --key=&lt;key&gt; --output=&lt;output&gt; --count=&lt;count&gt;</code></dd></dl> <ul><li>where <b>font</b> is a path to some font, for instance AriBlk.TTF.</li> <li><b>wordlist</b> is a path to some word list, for instance <code>/usr/share/dict/words</code>. (Note: on Debian/Ubuntu, the 'wbritish' and 'wamerican' packages provide such lists. On Fedora, use the 'words' package)</li> <li><b>key</b> is the exact passphrase you set <code class="mw-highlight mw-highlight-lang-php mw-content-ltr" style="" dir="ltr"><span class="nv">$wgCaptchaSecret</span></code> to. Use quotes if necessary.</li> <li><b>output</b> is the path to where the images should be stored (defined in <code class="mw-highlight mw-highlight-lang-php mw-content-ltr" style="" dir="ltr"><span class="nv">$wgCaptchaDirectory</span></code>).</li> <li><b>count</b> is how many images to generate.</li> <li>An example, assuming you're in the <code>extensions/ConfirmEdit</code> directory (font location from Ubuntu 6.06, probably different on other operating systems):</li></ul> <dl><dd><code>python captcha.py --font=/usr/share/fonts/truetype/freefont/FreeSans.ttf --wordlist=/usr/share/dict/words --key=FOO --output=../../../captcha --count=100</code></dd></dl> <ul><li>If you are not satisfied with the results of the words you've generated, you can remove the images and create a new set. Comic_Sans_MS_Bold.ttf seems to generate relatively legible words, and you could also edit the last line of captcha.py to increase the font size from the default of 40.</li></ul></li> <li>Put the images you get into <code>captcha</code> directory in your installation.</li> <li>Edit your wiki's <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>: specify the full path to your captcha directory in <code class="mw-highlight mw-highlight-lang-php mw-content-ltr" style="" dir="ltr"><span class="nv">$wgCaptchaDirectory</span></code> and secret key you've been using while generating captures in <code class="mw-highlight mw-highlight-lang-php mw-content-ltr" style="" dir="ltr"><span class="nv">$wgCaptchaSecret</span></code>.</li></ol> <div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="nv">$wgCaptchaDirectory</span> <span class="o">=</span> <span class="s2">&quot;/.php-data/my-wiki.org/wiki/captcha&quot;</span><span class="p">;</span> <span class="nv">$wgCaptchaDirectoryLevels</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="c1">// Set this to a value greater than zero to break the images into subdirectories</span> <span class="nv">$wgCaptchaSecret</span> <span class="o">=</span> <span class="s2">&quot;FOO&quot;</span><span class="p">;</span> <span class="c1">// Same value you used in --key option in captcha.py</span> </pre></div> <p>See also <a href="https://wikitech.wikimedia.org/wiki/Generating_CAPTCHAs" class="extiw" title="wikitech:Generating CAPTCHAs">wikitech:Generating CAPTCHAs</a> for how the Wikimedia Foundation does it. </p> <dl><dt>How to avoid common problems running Python on Windows</dt></dl> <ol><li>Install the most recent version of <a rel="nofollow" class="external text" href="https://pypi.org/project/Pillow/">Pillow</a>.</li> <li>Make the installation of Python on a short folder name, like <b>C:\Python\</b></li> <li>Create a folder like <b>C:\Ex</b> and place files <b>CAPTCHA.py / FONT.ttf / LIST.txt</b> into the folder.</li> <li>To execute easily, run the following example as a <a href="https://en.wikipedia.org/wiki/Batch_file#Example" class="extiw" title="w:Batch file">batch</a> file:</li></ol> <pre style="fonr-size:smaller;">C:\python\python.exe C:\Ex\CAPTCHA.py --font C:\Ex\FONT.ttf --wordlist C:\Ex\LIST.txt --key=YOURPASSWORD --output C:\Ex\ --count=20 </pre> <div class="mw-heading mw-heading3"><h3 id="MathCaptcha">MathCaptcha</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extension:ConfirmEdit&amp;action=edit&amp;section=9" title="Edit section: MathCaptcha"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r4199130">.mw-parser-output .mw-version{border:1px solid #72777d;font-size:80%;line-height:1.2;border-collapse:collapse}.mw-parser-output .mw-version-ltr{float:right;margin:0 0 .5em .5em;text-align:right}.mw-parser-output .mw-version-rtl{float:left;margin:0 .5em .5em 0;text-align:left}.mw-parser-output .mw-version td{padding:.1em .3em}.mw-parser-output .mw-version-versionbox{border:5px solid #00af89;text-align:center}.mw-parser-output .mw-version-versionnumber{font-weight:bold;font-size:180%}.mw-parser-output .mw-version-version .mw-version-versionbox{border-color:#c8ccd1}.mw-parser-output .mw-version.mw-version-version2 .mw-version-versionbox{border-top-color:#c8ccd1;border-right-color:#c8ccd1;border-left-color:#c8ccd1}.mw-parser-output .mw-version-version-unsupported .mw-version-versionbox{border-color:#d33}.mw-parser-output .mw-version.mw-version-version2-unsupported .mw-version-versionbox{border-top-color:#d33;border-right-color:#d33;border-left-color:#d33}.mw-parser-output .mw-version-version-legacy .mw-version-versionbox{border-color:#f93}.mw-parser-output .mw-version.mw-version-version2-legacy .mw-version-versionbox{border-top-color:#f93;border-right-color:#f93;border-left-color:#f93}.mw-parser-output .mw-version-version-stable .mw-version-versionbox,.mw-parser-output .mw-version.mw-version.mw-version-and-later .mw-version-versionbox{border-color:#00af89}.mw-parser-output .mw-version.mw-version-version2-stable .mw-version-versionbox{border-top-color:#00af89;border-right-color:#00af89;border-left-color:#00af89}.mw-parser-output .mw-version-version-future .mw-version-versionbox{border-color:#8080c0}.mw-parser-output .mw-version.mw-version-version2-future .mw-version-versionbox{border-top-color:#8080c0;border-right-color:#8080c0;border-left-color:#8080c0}.mw-parser-output .mw-version-version-alpha .mw-version-versionbox{border-style:dotted}</style> <table class="mw-version mw-version-ltr mw-version-version mw-version-version-legacy"><tbody><tr> <td>MediaWiki version:</td> <td class="mw-version-versionbox" title="MediaWiki 1.39 is a legacy version"><div class="mw-version-versionnumber"><small>&#8804;</small> 1.39</div></td> </tr></tbody></table> <table class="warning-message" style="background-color: var( --background-color-error-subtle, #ffe9e5 ); color: var( --color-base, #202122 ); border: 1px var( --border-color-error, #9f3526 ) solid; box-sizing: border-box; margin: 0.5em 0; padding: 0.5em;"><tbody><tr><td style="white-space: nowrap; vertical-align: top;"><span style="position: relative; top: -2px;"><span typeof="mw:File"><span><img alt="Warning" src="//upload.wikimedia.org/wikipedia/commons/thumb/b/bf/OOjs_UI_icon_notice-destructive.svg/18px-OOjs_UI_icon_notice-destructive.svg.png" decoding="async" width="18" height="18" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/b/bf/OOjs_UI_icon_notice-destructive.svg/27px-OOjs_UI_icon_notice-destructive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/b/bf/OOjs_UI_icon_notice-destructive.svg/36px-OOjs_UI_icon_notice-destructive.svg.png 2x" data-file-width="20" data-file-height="20" /></span></span></span> <b>Warning:</b> </td><td style="padding-left: 0.5em vertical-align: top;">This type is used by very few wikis, if any, probably because of scarce effectiveness.</td></tr></tbody></table> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r6651107"><div role="note" class="note note-info">This requires the <a href="/wiki/Special:MyLanguage/Extension:Math" title="Special:MyLanguage/Extension:Math">Math</a><span style="display:none"><a href="/wiki/Extension:Math" title="Extension:Math"> </a></span> extension to be installed. Also, since this requires the PNG mode of the Math extension, it no longer works since MediaWiki 1.40.</div> <p>This module generates an image using TeX to ask a basic math question. </p><p>Set the following to enable this CAPTCHA: </p> <div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="nx">wfLoadExtensions</span><span class="p">([</span> <span class="s1">&#39;ConfirmEdit&#39;</span><span class="p">,</span> <span class="s1">&#39;ConfirmEdit/MathCaptcha&#39;</span> <span class="p">]);</span> </pre></div> <p>See the <code>README</code> file in the math folder to install this captcha. </p> <div class="mw-heading mw-heading3"><h3 id="hCaptcha">hCaptcha</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extension:ConfirmEdit&amp;action=edit&amp;section=10" title="Edit section: hCaptcha"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r4199130"> <table class="mw-version mw-version-ltr mw-version-version mw-version-version-unsupported mw-version-and-later"><tbody><tr> <td>MediaWiki version:</td> <td class="mw-version-versionbox" title="The latest stable version is 1.42"><div class="mw-version-versionnumber"><small>&#8805;</small> 1.35</div></td> </tr></tbody></table> <p>See <a rel="nofollow" class="external free" href="https://www.hcaptcha.com/">https://www.hcaptcha.com/</a> </p><p>The configuration is similar to ReCaptcha: </p> <div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="nx">wfLoadExtensions</span><span class="p">([</span> <span class="s1">&#39;ConfirmEdit&#39;</span><span class="p">,</span> <span class="s1">&#39;ConfirmEdit/hCaptcha&#39;</span> <span class="p">]);</span> <span class="nv">$wgHCaptchaSiteKey</span> <span class="o">=</span> <span class="s1">&#39;your public/site key here&#39;</span><span class="p">;</span> <span class="nv">$wgHCaptchaSecretKey</span> <span class="o">=</span> <span class="s1">&#39;your private key here&#39;</span><span class="p">;</span> </pre></div> <p><code class="mw-highlight mw-highlight-lang-php mw-content-ltr" style="" dir="ltr"><span class="nv">$wgHCaptchaSendRemoteIP</span></code> is also available. </p> <div class="mw-heading mw-heading3"><h3 id="Turnstile">Turnstile</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extension:ConfirmEdit&amp;action=edit&amp;section=11" title="Edit section: Turnstile"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r4199130"> <table class="mw-version mw-version-ltr mw-version-version mw-version-version-stable mw-version-and-later"><tbody><tr> <td>MediaWiki version:</td> <td class="mw-version-versionbox" title="The latest stable version is 1.42"><div class="mw-version-versionnumber"><small>&#8805;</small> 1.42</div></td> </tr></tbody></table> <p>The configuration is similar to <a href="#ReCaptcha">#ReCaptcha</a> or <a href="#hCaptcha">#hCaptcha</a>: </p> <div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="nx">wfLoadExtensions</span><span class="p">([</span> <span class="s1">&#39;ConfirmEdit&#39;</span><span class="p">,</span> <span class="s1">&#39;ConfirmEdit/Turnstile&#39;</span> <span class="p">]);</span> <span class="nv">$wgTurnstileSiteKey</span><span class="o">=</span> <span class="s1">&#39;your public/site key here&#39;</span><span class="p">;</span> <span class="nv">$wgTurnstileSecretKey</span><span class="o">=</span> <span class="s1">&#39;your private key here&#39;</span><span class="p">;</span> </pre></div> <p><code class="mw-highlight mw-highlight-lang-php mw-content-ltr" style="" dir="ltr"><span class="nv">$wgTurnstileSendRemoteIP</span></code> is also available. </p> <div class="mw-heading mw-heading2"><h2 id="Configuration">Configuration</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extension:ConfirmEdit&amp;action=edit&amp;section=12" title="Edit section: Configuration"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="Don't_require_CAPTCHA_from_some_users"><span id="Don.27t_require_CAPTCHA_from_some_users"></span>Don't require CAPTCHA from some users</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extension:ConfirmEdit&amp;action=edit&amp;section=13" title="Edit section: Don&#039;t require CAPTCHA from some users"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>ConfirmEdit introduces a <code>'skipcaptcha'</code> permission type to <a href="/wiki/Special:MyLanguage/Manual:$wgGroupPermissions" title="Special:MyLanguage/Manual:$wgGroupPermissions">wgGroupPermissions</a><span style="display:none"><a href="/wiki/Manual:$wgGroupPermissions" title="Manual:$wgGroupPermissions"> </a></span>. This lets you set certain groups never to see CAPTCHAs. All of the following can be added to <code>LocalSettings.php</code>. </p><p>Defaults from <code>ConfirmEdit.php</code>: </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;*&#39;</span><span class="p">][</span><span class="s1">&#39;skipcaptcha&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="k">false</span><span class="p">;</span> <span class="nv">$wgGroupPermissions</span><span class="p">[</span><span class="s1">&#39;user&#39;</span><span class="p">][</span><span class="s1">&#39;skipcaptcha&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="k">false</span><span class="p">;</span> <span class="nv">$wgGroupPermissions</span><span class="p">[</span><span class="s1">&#39;autoconfirmed&#39;</span><span class="p">][</span><span class="s1">&#39;skipcaptcha&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="k">false</span><span class="p">;</span> <span class="nv">$wgGroupPermissions</span><span class="p">[</span><span class="s1">&#39;bot&#39;</span><span class="p">][</span><span class="s1">&#39;skipcaptcha&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="k">true</span><span class="p">;</span> <span class="c1">// registered bots</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;skipcaptcha&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="k">true</span><span class="p">;</span> </pre></div> <p>To skip captchas for users who confirmed their email, you need to set both: </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;emailconfirmed&#39;</span><span class="p">][</span><span class="s1">&#39;skipcaptcha&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="k">true</span><span class="p">;</span> <span class="nv">$wgAllowConfirmedEmail</span> <span class="o">=</span> <span class="k">true</span><span class="p">;</span> </pre></div> <div class="mw-heading mw-heading3"><h3 id="Set_actions_that_require_CAPTCHA">Set actions that require CAPTCHA</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extension:ConfirmEdit&amp;action=edit&amp;section=14" title="Edit section: Set actions that require CAPTCHA"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The following conditions can trigger a CAPTCHA to be displayed: </p> <ul><li>'edit' - triggered on every attempted page save</li> <li>'create' - triggered on page creation</li> <li>'sendemail' - triggered when using <a href="/wiki/Special:EmailUser" title="Special:EmailUser">Special:Emailuser</a></li> <li>'addurl' - triggered on a page save that would add one or more URLs to the page</li> <li>'createaccount' - triggered on creation of a new account</li> <li>'badlogin' - triggered after several failed login attempts from the same IP address</li> <li>'badloginperuser' - triggered after several failed login attempts using the same username</li></ul> <p>The default values for these are: </p> <div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="nv">$wgCaptchaTriggers</span><span class="p">[</span><span class="s1">&#39;edit&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="k">false</span><span class="p">;</span> <span class="nv">$wgCaptchaTriggers</span><span class="p">[</span><span class="s1">&#39;create&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="k">false</span><span class="p">;</span> <span class="nv">$wgCaptchaTriggers</span><span class="p">[</span><span class="s1">&#39;sendemail&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="k">false</span><span class="p">;</span> <span class="nv">$wgCaptchaTriggers</span><span class="p">[</span><span class="s1">&#39;addurl&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="k">true</span><span class="p">;</span> <span class="nv">$wgCaptchaTriggers</span><span class="p">[</span><span class="s1">&#39;createaccount&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="k">true</span><span class="p">;</span> <span class="nv">$wgCaptchaTriggers</span><span class="p">[</span><span class="s1">&#39;badlogin&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="k">true</span><span class="p">;</span> <span class="nv">$wgCaptchaTriggers</span><span class="p">[</span><span class="s1">&#39;badloginperuser&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="k">true</span><span class="p">;</span> </pre></div> <p>The triggers <code>edit</code>, <code>create</code> and <code>addurl</code> can be configured per namespace using the <code class="mw-highlight mw-highlight-lang-php mw-content-ltr" style="" dir="ltr"><span class="nv">$wgCaptchaTriggersOnNamespace</span></code> setting. If there is no <code class="mw-highlight mw-highlight-lang-php mw-content-ltr" style="" dir="ltr"><span class="nv">$wgCaptchaTriggersOnNamespace</span></code> for the current namespace, the normal <code class="mw-highlight mw-highlight-lang-php mw-content-ltr" style="" dir="ltr"><span class="nv">$wgCaptchaTriggers</span></code> apply. So suppose that in addition to the above <code class="mw-highlight mw-highlight-lang-php mw-content-ltr" style="" dir="ltr"><span class="nv">$wgCaptchaTriggers</span></code> defaults we configure the following: </p> <div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="nv">$wgCaptchaTriggersOnNamespace</span><span class="p">[</span><span class="nx">NS_TALK</span><span class="p">][</span><span class="s1">&#39;addurl&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="k">false</span><span class="p">;</span> <span class="nv">$wgCaptchaTriggersOnNamespace</span><span class="p">[</span><span class="nx">NS_PROJECT</span><span class="p">][</span><span class="s1">&#39;edit&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="k">true</span><span class="p">;</span> </pre></div> <p>Then the CAPTCHA will not trigger when adding URLs to a talk page, but on the other hand user will need to solve a CAPTCHA any time they try to edit a page in the project namespace, even if they aren't adding a link. </p> <div class="mw-heading mw-heading4"><h4 id="URL_and_IP_whitelists">URL and IP whitelists</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extension:ConfirmEdit&amp;action=edit&amp;section=15" title="Edit section: URL and IP whitelists"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>It is possible to define a whitelist of known good sites for which the CAPTCHA should not kick in when the <code>'addurl'</code> action is triggered. </p><p>Sysop users can edit the system message page called <b>MediaWiki:Captcha-addurl-whitelist</b>. </p><p>The expected format is a set of regex's one per line. </p><p>Comments can be added with <code>#</code> prefix. </p><p>You can see an example of this usage <a href="//wiki.openstreetmap.org/wiki/MediaWiki:Captcha-addurl-whitelist" class="extiw" title="openstreetmap:MediaWiki:Captcha-addurl-whitelist">on OpenStreetMap</a>. </p><p>This set of whitelist regexes can also be defined using the <code class="mw-highlight mw-highlight-lang-php mw-content-ltr" style="" dir="ltr"><span class="nv">$wgCaptchaWhitelist</span></code> config variable in <code>LocalSettings.php</code>, to keep the value(s) a secret. </p><p>Some other variables you can add to <code>LocalSettings.php</code>: </p> <ul><li>$wgCaptchaWhitelistIP - List of IP ranges to allow to skip the CAPTCHA (you can also use <b>MediaWiki:Captcha-ip-whitelist</b>; see below for details).</li> <li>$wgAllowConfirmedEmail - Allow users who have confirmed their e-mail addresses to post URL links.</li></ul> <p>These are described more thoroughly in the code comments </p><p><b>MediaWiki:Captcha-ip-whitelist</b> can change the whitelisted IP addresses and IP ranges on the wiki. </p><p>They should be separated by newlines. </p><p>If any other character (apart from a valid IP address or range) is found on a line, it will be ignored, but leading and trailing whitespace characters are allowed. </p><p>For example, a line with only <code>127.0.0.1</code> is considered valid but <code>#127.0.0.1</code> will be ignored. </p> <div class="mw-heading mw-heading4"><h4 id="Regular_expressions">Regular expressions</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extension:ConfirmEdit&amp;action=edit&amp;section=16" title="Edit section: Regular expressions"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The global variable wgCaptchaRegexes accepts an array of regexes to be tested against the page text and triggers the CAPTCHA if a match is found. </p> <div class="mw-heading mw-heading4"><h4 id="Failed_login_attempts">Failed login attempts</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extension:ConfirmEdit&amp;action=edit&amp;section=17" title="Edit section: Failed login attempts"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>When using the <code>badlogin</code> or <code>badloginperuser</code> triggers, the following configuration variables control how many failed login attempts per-IP and per-user are allowed before a CAPTCHA is required, and how long it takes until the CAPTCHA requirement expires: </p> <div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="nv">$wgCaptchaBadLoginAttempts</span> <span class="o">=</span> <span class="mi">3</span><span class="p">;</span> <span class="nv">$wgCaptchaBadLoginExpiration</span> <span class="o">=</span> <span class="mi">300</span><span class="p">;</span> <span class="c1">// 300 seconds = 5 minutes</span> <span class="nv">$wgCaptchaBadLoginPerUserAttempts</span> <span class="o">=</span> <span class="mi">20</span><span class="p">;</span> <span class="nv">$wgCaptchaBadLoginPerUserExpiration</span> <span class="o">=</span> <span class="mi">600</span><span class="p">;</span> <span class="c1">// 600 seconds = 10 minutes</span> </pre></div> <p>The triggers require <a href="/wiki/Special:MyLanguage/Manual:$wgMainCacheType" title="Special:MyLanguage/Manual:$wgMainCacheType">$wgMainCacheType</a><span style="display:none"><a href="/wiki/Manual:$wgMainCacheType" title="Manual:$wgMainCacheType"> </a></span> to be set to something other than <code>CACHE_NONE</code> in your <code>LocalSettings.php</code>, if in doubt the following will always work. </p> <div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="nv">$wgMainCacheType</span> <span class="o">=</span> <span class="nx">CACHE_ANYTHING</span><span class="p">;</span> </pre></div> <p>Note that these triggers do not trigger CAPTCHAs on API login but block them outright until the CAPTCHA requirement expires. </p> <div class="mw-heading mw-heading2"><h2 id="Wikimedia_configuration">Wikimedia configuration</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extension:ConfirmEdit&amp;action=edit&amp;section=18" title="Edit section: Wikimedia configuration"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>For example, <a href="/wiki/Special:MyLanguage/Wikimedia_Foundation" title="Special:MyLanguage/Wikimedia Foundation">Wikimedia Foundation</a><span style="display:none"><a href="/wiki/Wikimedia_Foundation" class="mw-redirect" title="Wikimedia Foundation"> </a></span> wikis use FancyCaptcha with a custom set of images and the default configuration, modified by what follows. </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;autoconfirmed&#39;</span><span class="p">][</span><span class="s1">&#39;skipcaptcha&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="k">true</span><span class="p">;</span> </pre></div> <p>This means only unregistered and <a href="https://meta.wikimedia.org/wiki/Special:MyLanguage/Newly_registered_user" class="extiw" title="m:Special:MyLanguage/Newly registered user">newly registered users</a> have to pass the CAPTCHA. </p> <div class="mw-heading mw-heading3"><h3 id="EmergencyCaptcha_mode">EmergencyCaptcha mode</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extension:ConfirmEdit&amp;action=edit&amp;section=19" title="Edit section: EmergencyCaptcha mode"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Additionally, the shortcut named <code class="mw-highlight mw-highlight-lang-php mw-content-ltr" style="" dir="ltr"><span class="nv">$wmgEmergencyCaptcha</span></code> is designed for use in a limited number of emergencies, for instance, in case of massive vandalism or spam attacks: it changes the default trigger values (see above) into the following: </p> <div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="nv">$wgCaptchaTriggers</span><span class="p">[</span><span class="s1">&#39;edit&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="k">true</span><span class="p">;</span> <span class="nv">$wgCaptchaTriggers</span><span class="p">[</span><span class="s1">&#39;create&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="k">true</span><span class="p">;</span> </pre></div> <p>So, in addition to the normal situation, all anonymous and new users have to solve a CAPTCHA before being able to save an edit or create a new page. </p> <div class="mw-heading mw-heading3"><h3 id="Rate-limiting">Rate-limiting</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extension:ConfirmEdit&amp;action=edit&amp;section=20" title="Edit section: Rate-limiting"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>ConfirmEdit supports rate limiting for false CAPTCHA. </p><p>For more information about <a href="/wiki/Special:MyLanguage/Manual:$wgRateLimits" title="Special:MyLanguage/Manual:$wgRateLimits">$wgRateLimits</a><span style="display:none"><a href="/wiki/Manual:$wgRateLimits" title="Manual:$wgRateLimits"> </a></span> and how to set it up, read <a href="/wiki/Special:MyLanguage/Manual:$wgRateLimits" title="Special:MyLanguage/Manual:$wgRateLimits">Manual:$wgRateLimits</a><span style="display:none"><a href="/wiki/Manual:$wgRateLimits" title="Manual:$wgRateLimits"> </a></span>, the action key is <code>badcaptcha</code>. </p> <div class="mw-heading mw-heading2"><h2 id="Authors">Authors</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extension:ConfirmEdit&amp;action=edit&amp;section=21" title="Edit section: Authors"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The basic framework was primarily designed by <a href="/wiki/User:Brion_VIBBER" class="mw-redirect" title="User:Brion VIBBER">Brion Vibber</a>, who also wrote the SimpleCaptcha and FancyCaptcha modules. </p><p>The MathCaptcha module was written by <a href="/wiki/User:Robchurch" title="User:Robchurch">Rob Church</a>. </p><p>The QuestyCaptcha module was written by <a href="/wiki/User:Emufarmers" title="User:Emufarmers">Benjamin Lees</a>. </p><p>Additional maintenance work was done by <a href="/wiki/User:Yaron_Koren" title="User:Yaron Koren">Yaron Koren</a>. </p> <div class="mw-heading mw-heading2"><h2 id="References">References</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extension:ConfirmEdit&amp;action=edit&amp;section=22" title="Edit section: References"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-references-wrap"><ol class="references"> <li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">MediaWiki:Questycaptchahelp-text, MediaWiki:Questycaptcha-edit, MediaWiki:Questycaptcha-addurl, MediaWiki:Questycaptcha-create, MediaWiki:Questycaptcha-createaccount</span> </li> <li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://googleonlinesecurity.blogspot.de/2014/12/are-you-robot-introducing-no-captcha.html">Google Blog <i>Are you a robot? Introducing “No CAPTCHA reCAPTCHA”</i> (<time datetime="2014-12-4">4 December 2014</time>)</a></span> </li> </ol></div> <div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extension:ConfirmEdit&amp;action=edit&amp;section=23" title="Edit section: See also"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/Special:MyLanguage/Anti-spam_features" title="Special:MyLanguage/Anti-spam features">Anti-spam features</a><span style="display:none"><a href="/wiki/Anti-spam_features" class="mw-redirect" title="Anti-spam features"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/Extension:ConfirmAccount" title="Special:MyLanguage/Extension:ConfirmAccount">Extension:ConfirmAccount</a><span style="display:none"><a href="/wiki/Extension:ConfirmAccount" title="Extension:ConfirmAccount"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/Extension:InviteSignup" title="Special:MyLanguage/Extension:InviteSignup">Extension:InviteSignup</a><span style="display:none"><a href="/wiki/Extension:InviteSignup" title="Extension:InviteSignup"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/Extension:SpamRegex" title="Special:MyLanguage/Extension:SpamRegex">Extension:SpamRegex</a><span style="display:none"><a href="/wiki/Extension:SpamRegex" title="Extension:SpamRegex"> </a></span></li> <li><a href="/wiki/Special:MyLanguage/Manual:$wgSpamRegex" title="Special:MyLanguage/Manual:$wgSpamRegex">Manual:$wgSpamRegex</a><span style="display:none"><a href="/wiki/Manual:$wgSpamRegex" title="Manual:$wgSpamRegex"> </a></span></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/BlueSpice" title="Special:MyLanguage/BlueSpice">BlueSpice</a><span style="display:none"><a href="/wiki/BlueSpice" title="BlueSpice"> </a></span></li> <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 rel="nofollow" class="external text" href="https://semantic.wiki/de/core">semantic::core</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://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‐web.codfw.main‐f69cdc8f6‐zvhrd Cached time: 20241124125045 Cache expiry: 2592000 Reduced expiry: false Complications: [vary‐revision‐sha1, show‐toc] CPU time usage: 0.779 seconds Real time usage: 1.102 seconds Preprocessor visited node count: 7885/1000000 Post‐expand include size: 90535/2097152 bytes Template argument size: 21981/2097152 bytes Highest expansion depth: 20/100 Expensive parser function count: 67/500 Unstrip recursion depth: 0/20 Unstrip post‐expand size: 39716/5000000 bytes Lua time usage: 0.296/10.000 seconds Lua memory usage: 16368979/52428800 bytes Number of Wikibase entities loaded: 0/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 796.995 1 -total 48.37% 385.509 1 Template:Extension 26.22% 208.950 67 Template:Ll 17.13% 136.559 90 Template:Pagelang 14.57% 116.131 137 Template:Translatable 12.51% 99.736 2 Template:Mbox 9.90% 78.881 1 Template:Used_by 9.19% 73.271 1 Template:Flatlist 5.25% 41.822 3 Template:MW_version 4.12% 32.832 3 Template:MW_version/layout --> <!-- Saved in parser cache with key mediawikiwiki:pcache:idhash:12823-0!canonical and timestamp 20241124125045 and revision id 6858278. Rendering was triggered because: page-view --> </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:ConfirmEdit&amp;oldid=6858278">https://www.mediawiki.org/w/index.php?title=Extension:ConfirmEdit&amp;oldid=6858278</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.18" title="Category:Extensions bundled with MediaWiki 1.18">Extensions bundled with MediaWiki 1.18</a></li><li><a href="/wiki/Category:Stable_extensions" title="Category:Stable extensions">Stable extensions</a></li><li><a href="/wiki/Category:Page_action_extensions" title="Category:Page action extensions">Page action extensions</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:APIGetAllowedParams_extensions" title="Category:APIGetAllowedParams extensions">APIGetAllowedParams extensions</a></li><li><a href="/wiki/Category:AbuseFilterCustomActions_extensions" title="Category:AbuseFilterCustomActions extensions">AbuseFilterCustomActions extensions</a></li><li><a href="/wiki/Category:AlternateEditPreview_extensions" title="Category:AlternateEditPreview extensions">AlternateEditPreview extensions</a></li><li><a href="/wiki/Category:AuthChangeFormFields_extensions" title="Category:AuthChangeFormFields extensions">AuthChangeFormFields extensions</a></li><li><a href="/wiki/Category:EditFilterMergedContent_extensions" title="Category:EditFilterMergedContent extensions">EditFilterMergedContent extensions</a></li><li><a href="/wiki/Category:EditPage::showEditForm:fields_extensions" title="Category:EditPage::showEditForm:fields extensions">EditPage::showEditForm:fields extensions</a></li><li><a href="/wiki/Category:EditPageBeforeEditButtons_extensions" title="Category:EditPageBeforeEditButtons extensions">EditPageBeforeEditButtons extensions</a></li><li><a href="/wiki/Category:EmailUser_extensions" title="Category:EmailUser extensions">EmailUser extensions</a></li><li><a href="/wiki/Category:EmailUserForm_extensions" title="Category:EmailUserForm extensions">EmailUserForm extensions</a></li><li><a href="/wiki/Category:PageSaveComplete_extensions" title="Category:PageSaveComplete extensions">PageSaveComplete extensions</a></li><li><a href="/wiki/Category:ResourceLoaderRegisterModules_extensions" title="Category:ResourceLoaderRegisterModules extensions">ResourceLoaderRegisterModules extensions</a></li><li><a href="/wiki/Category:TitleReadWhitelist_extensions" title="Category:TitleReadWhitelist extensions">TitleReadWhitelist extensions</a></li><li><a href="/wiki/Category:All_extensions" title="Category:All extensions">All extensions</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_BlueSpice" title="Category:Extensions included in BlueSpice">Extensions included in BlueSpice</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_semantic::core" title="Category:Extensions included in semantic::core">Extensions included in semantic::core</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_WikiForge" title="Category:Extensions included in WikiForge">Extensions included in WikiForge</a></li><li><a href="/wiki/Category:Edit_extensions" title="Category:Edit extensions">Edit extensions</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 18 November 2024, at 07:45.</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:ConfirmEdit&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-7j489","wgBackendResponseTime":157,"wgPageParseReport":{"limitreport":{"cputime":"0.779","walltime":"1.102","ppvisitednodes":{"value":7885,"limit":1000000},"postexpandincludesize":{"value":90535,"limit":2097152},"templateargumentsize":{"value":21981,"limit":2097152},"expansiondepth":{"value":20,"limit":100},"expensivefunctioncount":{"value":67,"limit":500},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":39716,"limit":5000000},"entityaccesscount":{"value":0,"limit":400},"timingprofile":["100.00% 796.995 1 -total"," 48.37% 385.509 1 Template:Extension"," 26.22% 208.950 67 Template:Ll"," 17.13% 136.559 90 Template:Pagelang"," 14.57% 116.131 137 Template:Translatable"," 12.51% 99.736 2 Template:Mbox"," 9.90% 78.881 1 Template:Used_by"," 9.19% 73.271 1 Template:Flatlist"," 5.25% 41.822 3 Template:MW_version"," 4.12% 32.832 3 Template:MW_version/layout"]},"scribunto":{"limitreport-timeusage":{"value":"0.296","limit":"10.000"},"limitreport-memusage":{"value":16368979,"limit":52428800}},"cachereport":{"origin":"mw-web.codfw.main-f69cdc8f6-zvhrd","timestamp":"20241124125045","ttl":2592000,"transientcontent":false}}});});</script> </body> </html>

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