Manual:$wgRateLimits

From mediawiki.org
Jump to navigation Jump to search
This page is a translated version of the page Manual:$wgRateLimits and the translation is 62% complete.
Other languages:
English • ‎español • ‎français • ‎magyar • ‎polski • ‎русский • ‎中文 • ‎日本語
Rate limiter: $wgRateLimits
Opciones sencillas para limitar la frecuencia de ediciones en oleadas masivas.
Introducido en la versión:1.4.5
Eliminado en la versión:aún se usa
Valores permitidos:no especificado
Valor predeterminado:ver a continuación

Detalles

Esta configuración proporciona un sencillo limitador de frecuencia para limitar las oleadas masivas de ediciones y otros comportamientos potencialmente destructivos, como enviar correos a otros usuarios. Establece un número máximo de acciones permitidas en una franja de tiempo de tantos segundos. Más allá de ello, el cliente infractor recibirá páginas de error HTTP 429 hasta que haya pasado el plazo. Note that limits are generally counted per site, but some of the special limits are aggregated across all sites in a wiki farm, e.-g. all Wikimedia wikis. Para comprobar si se ha excedido un límite de frecuencia, usa la función User::pingLimiter() .

The general syntax is:

$wgRateLimits['<action>']['<usergroup>'] = [ <maximum number of action>, <timespan in second> ];

There are some special additional limits:

  • anon - applies to unregistered users only, and applies by action and IP.
  • user - applies to registered users only, and applies by action and user.
  • user-global - (since 1.35) applies by action and registered user, counted across sites.
  • newbie - applies to both unregistered and "newbie" users, and applies by action and user.
  • ip - applies to both unregistered and "newbie" users (i.e. users without the autoconfirmed user right), and will limit total number of action from one IP regardless of specific users. This will be enforced in addition to other limits, and is counted across sites.
  • subnet - applies to both unregistered and "newbie" users, and will limit total number of action from the /24 (for IPv4) or /64 (for IPv6) range of IP. This will be enforced in addition to other limits, and is counted across sites
  • ip-all - applies to all users other than those whose user-specific limit (see below) is more permissive, and will limit total number of action from one IP regardless of specific users. This will be enforced in addition to other limits, and is counted across sites.
  • subnet-all - applies to all users other than those whose user-specific limit is more permissive, and will limit total number of action from /24 or /64 range. This will be enforced in addition to other limits, and is counted across sites.

If there are multiple limit defined, the user-specific limit is defined as:

  • newbie - if the user is a "newbie", or
  • The most permissive (i.e. with the highest action/timespan ratio) of user limit and all applicable user group limits of the user, or
  • anon - for unregistered users.

All user groups defined in $wgAutopromote (for example, autoconfirmed) will not be checked unless you explicitly assigned the user group to a specific user.

Por ejemplo, para establecer un máximo de 4 ediciones cada 60 segundos para usuarios «newbie» (novatos, es decir, no autoconfirmados), añade esto:

$wgRateLimits['edit']['newbie'] = [ 4, 60 ];
Por lo que, si tienes muchos novatos que usen la misma dirección IP, todos ellos se incluyen en el mismo recuento para el límite ip. Esto puede tener efectos deseados o no deseados. Si tienes por ejemplo un hackatón con un gran número de usuarios nuevos (legítimos), es posible que alcancen rápidamente el límite de acciones por IP, lo cual puede ser indeseado. Por otra parte, los spammers que usan distintas cuentas desde la misma dirección IP también pueden alcanzar el límite, lo cual sería deseado.

By setting $wgRateLimits['anAction']['&can-bypass'] = false; the limitations for a specific action can be marked as not skippable.

If that is set, neither the noratelimit user right nor the $wgRateLimitsExcludedIPs setting have any effect for that action.

Para que esta configuración funcione, $wgMainCacheType debe tener fijado un valor distinto de CACHE_NONE.

Las extensiones pueden proporcionar claves adicionales para $wgRateLimit. Por ejemplo, Extension:ConfirmEdit proporciona una clave «badcaptcha» que permite ralentizar a los usuarios según el número de respuestas incorrectas que hayan dado a un captcha. Un ejemplo sería:

$wgRateLimits['badcaptcha']['newbie'] = [ 100, 86400 ];

Esto permitiría a los usuarios no más de 100 respuestas incorrectas cada día (86400 segundos).

Valor predeterminado

Versión de MediaWiki:
1.34
$wgRateLimits = [
	// Ediciones de páginas
	'edit' => [
		'ip' => [ 8, 60 ],
		'newbie' => [ 8, 60 ],
		'user' => [ 90, 60 ],
	],
	// Traslados de páginas
	'move' => [
		'newbie' => [ 2, 120 ],
		'user' => [ 8, 60 ],
	],
	// Subidas de archivos
	'upload' => [
		'ip' => [ 8, 60 ],
		'newbie' => [ 8, 60 ],
	],
	// Reversiones de páginas
	'rollback' => [
		'user' => [ 10, 60 ],
		'newbie' => [ 5, 120 ]
	],
	// Peticiones de correos de reactivación de contraseña
	'mailpassword' => [
		'ip' => [ 5, 3600 ],
	],
	// Envíos de correos electrónicos a otros usuarios mediante MediaWiki
	'emailuser' => [
		'ip' => [ 5, 86400 ],
		'newbie' => [ 5, 86400 ],
		'user' => [ 20, 86400 ],
	],
	'changeemail' => [
		'ip-all' => [ 10, 3600 ],
		'user' => [ 4, 86400 ]
	],
	// since 1.33 - rate limit email confirmations
	'confirmemail' => [
		'ip-all' => [ 10, 3600 ],
		'user' => [ 4, 86400 ]
	],
	// Purgas de páginas
	'purge' => [
		'ip' => [ 30, 60 ],
		'user' => [ 30, 60 ],
	],
	// Purgas de tablas de enlaces
	'linkpurge' => [
		'ip' => [ 30, 60 ],
		'user' => [ 30, 60 ],
	],
	// Archivos generados mediante thumb.php o thumb_handler.php
	'renderfile' => [
		'ip' => [ 700, 30 ],
		'user' => [ 700, 30 ],
	],
	// Igual que lo anterior, pero para miniaturas no estándar
	'renderfile-nonstandard' => [
		'ip' => [ 70, 30 ],
		'user' => [ 70, 30 ],
	],
	// Almacenamientos de ediciones en la antememoria antes de su guardado
	'stashedit' => [
		'ip' => [ 30, 60 ],
		'newbie' => [ 30, 60 ],
	],
	// Adición o borrado de etiquetas de cambio
	'changetag' => [
		'ip' => [ 8, 60 ],
		'newbie' => [ 8, 60 ],
	],
	// Changing the content model of a page
	'editcontentmodel' => [
		'newbie' => [ 2, 120 ],
		'user' => [ 8, 60 ],
	],
];
Versiones de MediaWiki:
1.30 – 1.33
$wgRateLimits = [
	// Page edits
	'edit' => [
		'ip' => [ 8, 60 ],
		'newbie' => [ 8, 60 ],
		'user' => [ 90, 60 ],
	],
	// Page moves
	'move' => [
		'newbie' => [ 2, 120 ],
		'user' => [ 8, 60 ],
	],
	// File uploads
	'upload' => [
		'ip' => [ 8, 60 ],
		'newbie' => [ 8, 60 ],
	],
	// Page rollbacks
	'rollback' => [
		'user' => [ 10, 60 ],
		'newbie' => [ 5, 120 ]
	],
	// Triggering password resets emails
	'mailpassword' => [
		'ip' => [ 5, 3600 ],
	],
	// Emailing other users using MediaWiki
	'emailuser' => [
		'ip' => [ 5, 86400 ],
		'newbie' => [ 5, 86400 ],
		'user' => [ 20, 86400 ],
	],
	'changeemail' => [
		'ip-all' => [ 10, 3600 ],
		'user' => [ 4, 86400 ]
	],
	// Purging pages
	'purge' => [
		'ip' => [ 30, 60 ],
		'user' => [ 30, 60 ],
	],
	// Purges of link tables
	'linkpurge' => [
		'ip' => [ 30, 60 ],
		'user' => [ 30, 60 ],
	],
	// Files rendered via thumb.php or thumb_handler.php
	'renderfile' => [
		'ip' => [ 700, 30 ],
		'user' => [ 700, 30 ],
	],
	// Same as above but for non-standard thumbnails
	'renderfile-nonstandard' => [
		'ip' => [ 70, 30 ],
		'user' => [ 70, 30 ],
	],
	// Stashing edits into cache before save
	'stashedit' => [
		'ip' => [ 30, 60 ],
		'newbie' => [ 30, 60 ],
	],
	// Adding or removing change tags
	'changetag' => [
		'ip' => [ 8, 60 ],
		'newbie' => [ 8, 60 ],
	],
	// Changing the content model of a page
	'editcontentmodel' => [
		'newbie' => [ 2, 120 ],
		'user' => [ 8, 60 ],
	],
];
Versiones de MediaWiki:
1.4 – 1.6
$wgRateLimits = array(
	'edit' => array(
		'anon'   => null, // for any and all anonymous edits (aggregate)
		'user'   => null, // for each logged-in user
		'newbie' => null, // for each recent account; overrides 'user'
		'ip'     => null, // for each anon and recent account
		'subnet' => null, // ... with final octet removed
		),
	'move' => array(
		'user'   => null,
		'newbie' => null,
		'ip'     => null,
		'subnet' => null,
		),
	);

Historial de versiones

  • Se añadió el array «mailpassword» en MediaWiki 1.7.0.
  • Se añadió el array «emailuser» en MediaWiki 1.10.0.
  • Se añadió el array «linkpurge» en MediaWiki 1.22.0.
  • Se añadió el array «renderfile» en MediaWiki 1.22.0.

Véase también