Extensão:Filtro de abusos

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Extension:AbuseFilter and the translation is 46% complete.

Outdated translations are marked like this.
Other languages:
Deutsch • ‎English • ‎català • ‎dansk • ‎español • ‎français • ‎galego • ‎magyar • ‎polski • ‎português • ‎português do Brasil • ‎română • ‎sicilianu • ‎čeština • ‎български • ‎русский • ‎עברית • ‎سنڌي • ‎فارسی • ‎हिन्दी • ‎বাংলা • ‎中文 • ‎日本語 • ‎粵語 • ‎한국어
Manual de extensões do MediaWiki
OOjs UI icon advanced.svg
AbuseFilter
Estado da versão: estável
AbuseFilter-Management.png
Implementação User activity , Special page , API
Descrição Permite inserir restrições baseadas em comportamentos específicos na atividade wiki.
Autor(es)
Política de
compatibilidade
branches por lançamento
MediaWiki 1.33+
PHP 5.4+ recomendado
Modifica o banco
de dados
Sim
Tabelas abuse_filter
abuse_filter_action
abuse_filter_history
abuse_filter_log
Licença GNU General Public License 2.0 or later
Download
  • $wgAbuseFilterActions
  • $wgAbuseFilterConditionLimit
  • $wgAbuseFilterEmergencyDisableThreshold
  • $wgAbuseFilterEmergencyDisableCount
  • $wgAbuseFilterEmergencyDisableAge
  • $wgAbuseFilterParserClass
  • $wgAbuseFilterRestrictions
  • $wgAbuseFilterNotifications
  • $wgAbuseFilterNotificationsPrivate
  • $wgAbuseFilterCentralDB
  • $wgAbuseFilterIsCentral
  • $wgAbuseFilterDisallowGlobalLocalBlocks
  • $wgAbuseFilterBlockDuration
  • $wgAbuseFilterAnonBlockDuration
  • $wgAbuseFilterCustomActionsHandler
  • $wgAbuseFilterValidGroups
  • $wgAbuseFilterDefaultWarningMessage
  • $wgAbuseFilterIPMaxAge
  • $wgAbuseFilterProfileActionsCap
  • $wgAbuseFilterLogPrivateDetailsAccess
  • $wgAbuseFilterPrivateDetailsForceReason
  • abusefilter-view
  • abusefilter-log
  • abusefilter-log-detail
  • abusefilter-revert
  • abusefilter-privatedetails
  • abusefilter-privatedetails-log
  • abusefilter-view-private
  • abusefilter-log-private
  • abusefilter-hidden-log
  • abusefilter-hide-log
  • abusefilter-modify
  • abusefilter-modify-restricted
  • abusefilter-modify-global
Traduzir a extensão AbuseFilter, se estiver disponível no translatewiki.net
Verificar uso e matriz de versões
Problemas Tarefas em aberto · Relatar um bug

A extensão AbuseFilter permite que usuários com este privilégio definam ações específicas a serem tomadas quando usuários realizam ações, como edições, que correspondam a certos critérios.

Por exemplo, um filtro poderia ser criado para evitar que usuários anônimos adicionassem ligações externas, ou para bloquear um usuários que remova mais de 2 000 caracteres.

Instalação

  • Baixe e coloque o(s) arquivo(s) num diretório chamado AbuseFilter na sua pasta extensions/.
  • Execute o Composer para instalar as dependências PHP através de composer install --no-dev no diretório da extensão. (Veja T173141 para possíveis complicações.)
  • Adicione o seguinte código ao final do seu arquivo LocalSettings.php:
    wfLoadExtension( 'AbuseFilter' );
    
  • Execute o script de atualização que criará automaticamente as tabelas de banco de dados necessárias a essa extensão.
  • Configure as required.
  • Yes Pronto – Navegue à página Special:Version em sua wiki para verificar se a instalação da extensão foi bem sucedida.

Para usuários executando o MediaWiki 1.26 ou anteriores:

As instruções acima descrevem a nova forma de instalar essa extensão utilizando wfLoadExtension(). Se precisar instalar essa extensão em versões antigas (MediaWiki 1.26 e anteriores), em vez de wfLoadExtension( 'AbuseFilter' );, você precisa usar:

require_once "$IP/extensions/AbuseFilter/AbuseFilter.php";

Configuração

Direitos de usuário

Uma vez instalada a extensão, você terá de estabelecer os direitos de usuário no arquivo "LocalSettings.php".

Direito Descrição
abusefilter-modify Modificar filtros de abusos
abusefilter-view Ver filtros de abusos
abusefilter-log Ver o registro de abusos
abusefilter-log-detail Ver entradas detalhadas do registro de abusos
abusefilter-privatedetails Ver dados privados no registro de abusos
abusefilter-modify-restricted Modificar filtros de abusos com ações restritas
abusefilter-modify-global Criar ou modificar filtros de abuso global
abusefilter-revert Reverter todas as modificações feitas por um dado filtro de abusos
abusefilter-view-private Ver filtros de abuso marcados como privados
abusefilter-log-private Ver registro de entrada do fitro de abusos marcados como privados
abusefilter-hide-log Ocultar entradas do filtro de abusos
abusefilter-hidden-log Ver entradas ocultadas do registro de abusos
abusefilter-privatedetails-log Veja o registro de acesso de detalhes privados no Filtro de abuso

Por exemplo, a configuração de exemplo a seguir permitiria sysops fazerem tudo o que quisessem com o AbuseFilter, e todo mundo visualizaria o registro e as configurações de filtro público:

$wgGroupPermissions['sysop']['abusefilter-modify'] = true;
$wgGroupPermissions['*']['abusefilter-log-detail'] = true;
$wgGroupPermissions['*']['abusefilter-view'] = true;
$wgGroupPermissions['*']['abusefilter-log'] = true;
$wgGroupPermissions['sysop']['abusefilter-private'] = true;
$wgGroupPermissions['sysop']['abusefilter-modify-restricted'] = true;
$wgGroupPermissions['sysop']['abusefilter-revert'] = true;
Filtros marcados como privados só podem ser vistos por usuários com a permissão “abusefilter-modify” ou a permissão “abusefilter-view-private”.

Parameters

Nome da variável Valor padrão Descrição
$wgAbuseFilterActions
[
    'throttle' => true,
    'warn' => true,
    'disallow' => true,
    'blockautopromote' => true,
    'block' => true,
    'rangeblock' => false,
    'degroup' => true,
    'tag' => true
]
As ações possíveis que podem ser realizadas pelos filtros de abuso. When adding a new action, check if it is restricted in $wgAbuseFilterRestrictions and, if it is, don't forget to add the abusefilter-modify-restricted right to the appropriate user groups.
$wgAbuseFilterConditionLimit
1000
O número máximo de 'condições' que pode ser usado cada vez que os filtros são aplicadas a uma alteração. (Filtros mais complexos requerem mais 'condições').
$wgAbuseFilterValidGroups
[
    'default'
]
A lista de filtros de "grupos" pode ser dividida. Por padrão, há apenas um grupo. Other extensions may add other groups.
$wgAbuseFilterEmergencyDisableThreshold
[
    'default' => 0.05
]
Desativar um filtro se corresponder a mais de 2 edições, constituindo mais de 5 % das ações que foram verificadas contra o grupo do filtro no período "observado" (no máximo um dia), a menos que o filtro tenha sido alterado nos últimos 86400 segundos (um dia) See emergency throttling.
$wgAbuseFilterEmergencyDisableCount
[
    'default' => 2
]
$wgAbuseFilterEmergencyDisableAge
[
    'default' => 86400
]
$wgAbuseFilterParserClass
'AbuseFilterParser'
Nome da classe do analisador do AbuseFilter.
$wgAbuseFilterRestrictions
[
    'block' => true,
    'degroup' => true,
    'blockautopromote' => true,
    'rangeblock' => true
]
Os usuários devem ter o direito de usuário "abusefilter-modify-restricted" bem como "abusefilter-modify" a fim de criar ou modificar os filtros que realizam essas ações.
$wgAbuseFilterNotifications
false
Permite configurar a extensão para enviar notificações de sucesso para Special:RecentChanges ou UDP. Opções disponíveis: rc, udp, rcandudp
$wgAbuseFilterNotificationsPrivate
false
Habilitar notificações para filtros privados.
$wgAbuseFilterCentralDB
null
Nome de um banco de dados onde os filtros de abuso globais serão armazenados (apenas suportado na última versão de desenvolvimento).
$wgAbuseFilterIsCentral
false
Defina esta variável como true para a wiki onde AbuseFilters globais são armazenados (suportado apenas na última versão em desenvolvimento).
$wgAbuseFilterDisallowGlobalLocalBlocks
false
Não permitir filtros centralizados de tomarem ações que bloqueiam localmente, remover de grupos ou revogar permissões.
$wgAbuseFilterBlockDuration
'indefinite'
Duração dos blocos feita pelo AbuseFilter
as of 1.31.0-wmf.25 block durations may be specified for every single filter and will override this variable. This variable is only used when enabling the block in order to preselect a default duration.
$wgAbuseFilterAnonBlockDuration
null
Duração de bloqueios feitos pelo AbuseFilter em usuários que não estão logados. O valor de $wgAbuseFilterBlockDuration será usado se ela não estiver definida.
as of 1.31.0-wmf.25 block durations may be specified for every single filter and will override this variable. This variable is only used when enabling the block in order to preselect a default duration.
$wgAbuseFilterCustomActionsHandlers
[ ]
Funções callback para ações customizadas.
$wgAbuseFilterDefaultWarningMessage
[
    'default' => 'abusefilter-warning'
]
Mensagens de aviso padrão, por filtro de grupo
$wgAbuseFilterLogIPMaxAge
3 * 30 * 24 * 3600
Idade utilizada como ponto de corte ao purgar dados de registro de IP antigos. Padrão para 3 meses. Usado pelo script de manutenção purgeOldLogIPData.php.
$wgAbuseFilterProfileActionsCap
10000
Number of action that determines when to reset profiling stats.
$wgAbuseFilterLogPrivateDetailsAccess
false
Whether accessing private information from a filter log entry is logged.
$wgAbuseFilterPrivateDetailsForceReason
false
Whether users are forced to provide a reason for accessing private information from a filter log entry.

Emergency throttling

AbuseFilter comes with a feature that automatically throttles (disable) filters that have been edited recently and match a certain theresold of the latest actions.

This is done to prevent harmful edits on the filters to block every user that performs an action on the wiki or similar.

The condition to disable the filter depend on those variables:

  • $wgAbuseFilterEmergencyDisableThreshold - Percent of matches over the total amount of actions in the observed period.
  • $wgAbuseFilterEmergencyDisableCount - Count of matches of the filter in the observed period.
  • $wgAbuseFilterEmergencyDisableAge - Age of the filter to take it into account. If the last edit of the filter is older than this number of seconds, the filter won't be throttled, unless it's already throttled.
  • $wgAbuseFilterProfileActionsCap - Maximum number of recent actions to count against the threshold. Note that each action increments a counter, and once this counter reaches this configured value, this counter and the number of recent actions that matches all filters are reset to 0.

Throttled filters can be identified in the list of filters (Special:AbuseFilter) with the state Enabled, throttled. Throttling happens silently, and there's no way to see when a filter got throttled.

When a filter gets throttled, it doesn't perform any dangerous action (the ones specified in $wgAbuseFilterRestrictions), and only "safe" actions are allowed. Throttled filters don't get enabled automatically. To disable the throttling, you need to edit the filter. Note that you need to actually change something from the filter: changing somethin from the filter's notes is sufficient.

Note that editing the filter updates its age, and can cause it to be disabled if it reaches again the conditions to be throttled in a short period since the last edit, leading to a unusable filter if your wiki has more abuse edits than legitimate ones. Filters can also get randomly throttled if the action count reaches $wgAbuseFilterProfileActionsCap, causing all filter matches count to reset to 0, and then someone repeatedly makes a filter to hit.

Criando e gerenciando filtros

Uma vez que a extensão foi instalada, filtros podem ser criados/testados/alterados/excluídos e os registros podem ser acessados ​​a partir da página de gerenciamento do AbuseFilter Special:AbuseFilter.

API

O AbuseFilter adiciona dois módulos de lista de API, uma para detalhes dos filtros de abuso ("abusefilters") e um para o registro de abusos, uma vez que este é separado de outros registros do MediaWiki ("abuselog"). Não é possível criar ou modificar filtros de abuso usando a API.

list = abusefilters

Lista informações sobre filtros

;Parâmetros
  • abfstartid: O ID do filtro de onde inicia-se a enumeração
  • abfendid: O ID de filtro onde interrompe-se a enumeração
  • abfdir: A direção na qual enumerar (mais antigo, mais recente)
  • abfshow: Mostra apenas filtros que atendem a esses critérios (enabled|!enabled|deleted|!deleted|private|!private)
  • abflimit: O número máximo de filtros para listar
  • abfprop: Quais propriedades para se obter (id|description|pattern|actions|hits|comments|lasteditor|lastedittime|status|private):
  • abfstartid - The filter id to start enumerating from
  • abfendid - The filter id to stop enumerating at
  • abfdir - The direction in which to enumerate (older, newer)
  • abfshow - Show only filters which meet these criteria (enabled|!enabled|deleted|!deleted|private|!private)
  • abflimit - The maximum number of filters to list
  • abfprop - Which properties to get (id|description|pattern|actions|hits|comments|lasteditor|lastedittime|status|private)

Quando os filtros são private, algumas das propriedades especificadas com abfprop estarão ausentes, a menos que você tenha os direitos de usuário apropriados.

;Exemplos

Lista filtros de abuso não-privados

list = abuselog

Lista casos em que as ações desencadearam um filtro de abuso.

;Parâmetros
  • aflstart: O timestamp de onde se inicia a enumeração
  • aflend: O timestamp onde se para a enumeração
  • afldir: A direção na qual se realiza a enumeração (mais antigo, mais recente)
  • afluser: Mostra apenas as entradas onde a ação foi tentada por um determinado usuário ou endereço IP.
  • afltitle: Mostra apenas as entradas onde a ação envolveu uma determinada página.
  • aflfilter: Mostra apenas as entradas que desencadearam um determinado ID de filtro
  • afllimit: O número máximo de entradas para listar
  • aflprop: Quais propriedades a serem obtidas (ids|user|title|action|result|timestamp|details):
  • aflstart - The timestamp to start enumerating from
  • aflend - The timestamp to stop enumerating at
  • afldir - The direction in which to enumerate (older, newer)
  • afluser - Show only entries where the action was attempted by a given user or IP address.
  • afltitle - Show only entries where the action involved a given page.
  • aflfilter - Show only entries that triggered a given filter ID
  • afllimit - The maximum number of entries to list
  • aflprop - Which properties to get (ids|user|title|action|result|timestamp|details)
;Exemplo

Lista de casos em que o filtro de abuso foi desencadeado em resposta às ações do usuário "SineBot"

Possible errors

  • Some users might experience that creating new filters or modifying old filters fail and the user just gets redirected to the original page. If the Wiki is using SSL certificates, this error could possibly be because of the $wgServer value, which might be using "http://" instead of "https://". An indication of this error will be, the browser giving https warning for Special:AbuseFilter pages. (Topic:T23dyyih0ofjada5)

Ver também