Sem categoria

Como limitar tentativas de login no WordPress

Eu vou mostrar duas formas de como limitar as tentativas de login no WordPress. Ao limitar o número de tentativas inválidas de login, é possível proteger um site do ataque de força bruta.

Todos nós sabemos, que é vital tomar medidas para impedir o acesso malicioso para proteger nossos sites. Certamente, não há escassez de usuários maliciosos online que pretendem entrar no site e provocar algum estrago.

Veja como limitar tentativas de login no WordPress

Existem muitos plugins do WordPress disponíveis para limitar as tentativas inválidas de login. Por exemplo: Limit Login Attempts Reloaded, Cerber Security, Antispam e Malware Scan. Neste artigo, vamos ver como limitar as tentativas de login usando esses dois métodos.

1 -Usando o plugin Limit Login Attempts Reloaded

Este plugin limita as tentativas de login e protege o site WordPress. Ele tem uma boa classificação em relação aos concorrentes e mais de 1 milhão instalações ativas. Inclui vários recursos fáceis d configurar.

  1. Faça o download do plugin Limit Login Attempts Reloaded no repositório de plugins WordPress.org.
  2. Em seguida, instale-o em seu site WordPress.
  3. Faça as configurações padrões e já está pronto para funcionar.

Você também pode atualizar este plugin, a partir do plugin antigo: LIMIT LOGIN ATTEMPTS

  • Vá para a seção Plugins no back-end do seu site.
  • Remova o plug-in Limitar tentativas de login.
  • Instale o plug-in Limitar tentativas de logon recarregado.

Geralmente as configurações pré-definidas são:

  • Número de tentativas de login.
  • Tempo de bloqueio em minutos.
  • Número de tentativas de login para captcha.
  • Caixa de seleção para ativar e desativar a verificação captcha.
imitar tentativas de login no WordPress
Tela da configuração do plugin

Já está configurada, as tentativas de login inválidas dos usuários e robôs mal-intencionados. Esta restrição através deste plugin protegerá o site WordPress contra ataques de força bruta.

2 - Adicione código personalizado para limitar tentativas de login no WordPress

Para esta opção, você deve ter uma noção básica do PHP. Se você não quer um plugin para realizar esta tarefa, pode limitar as tentativas de login usando o código personalizado em functions.php.

Funções do do tema, já diz tudo, ele é o arquivo de tema do WordPress que contém ganchos para filtrar e executar ações na entidade do WordPress.

Ao executar nosso próprio código com um gancho de ação do WordPress, reduzirá a carga, evitando o uso de plugins. Como podemos notar, o WordPress, otimizará bastante o site, carregando um número limitado de plugins. Quanto menos plugin, melhor, mas não vivemos para sempre sem eles.

O código abaixo é para o arquivo de funções

Adicione o código abaixo ao seu WordPress functions.php. Este código contém o gancho de ação e filtro do WordPress e a função de retorno de chamada correspondente. O retorno de chamada contém o código para restringir o número de tentativas inválidas de login.

function check_attempted_login( $user, $username, $password ) {
if ( get_transient( 'attempted_login' ) ) {
$datas = get_transient( 'attempted_login' );

if ( $datas['tried'] >= 3 ) {
$until = get_option( '_transient_timeout_' . 'attempted_login' );
$time = time_to_go( $until );

return new WP_Error( 'too_many_tried', sprintf( __( '<strong>ERRO</strong>: o limite de tentativas de login foi atingido, tente novamente novamente em %1$s.' ) , $time ) );
}
}

return $user;
}
add_filter( 'authenticate', 'check_attempted_login', 30, 3 ); 
function login_failed( $username ) {
if ( get_transient( 'attempted_login' ) ) {
$datas = get_transient( 'attempted_login' );
$datas['tried']++;

if ( $datas['tried'] <= 3 )
set_transient( 'attempted_login', $datas , 300 );
} else {
$datas = array(
'tried' => 1
);
set_transient( 'attempted_login', $datas , 300 );
}
}
add_action( 'wp_login_failed', 'login_failed', 10, 1 );

function time_to_go($timestamp)
{

// convertendo o timestamp do mysql em php time
$periods = array(
"second",
"minute",
"hour",
"day",
"week",
"month",
"year"
);
$lengths = array(
"60",
"60",
"24",
"7",
"4.35",
"12"
);
$current_timestamp = time();
$difference = abs($current_timestamp - $timestamp);
for ($i = 0; $difference >= $lengths[$i] && $i < count($lengths) - 1; $i ++) {
$difference /= $lengths[$i];
}
$difference = round($difference);
if (isset($difference)) {
if ($difference != 1)
$periods[$i] .= "s";
$output = "$difference $periods[$i]";
return $output;
}
}

No código acima, usamos a tag de ação wp_login_failed e autenticamos a tag de filtro para conectar funções para obter e definir o transitório de tryed_login. O número de tentativas com falha é armazenado temporariamente e usado para alertar o usuário sobre isso quando o limite atingido.

Usando esse gancho de filtro, o retorno de chamada check_attempted_login será chamado. Nesta função, o método get_transient do WordPress é usado para obter a contagem de tentativas falhas de login.

Se o usuário tentar mais de 2 vezes com o login errado, isso retornará o erro do WordPress sobre o limite de login com falha e impedirá o usuário de efetuar login por um período especificado.

A tag de wp_login_failed que mostra falha no login

A tag de ação wp_login_failed serve para conectar um método para incrementar a instância de login com falha.

Este gancho de ação chamará o método login_failed quando a tentativa de login do usuário falhar. Em todas as tentativas com falha, ele incrementa a contagem de logon tentada. Em seguida, a contagem de logon tentada será configurada para o transitório tryed_login, que será usado posteriormente para bloquear o login do usuário pelo período temporário.

Ainda, no código acima, usei uma função time_to_go para calcular o tempo restante para permitir que o usuário efetue login novamente após o bloco. Além disso, converte o carimbo de data e hora em um formato de hora fácil de usar.

Aviso de limite de tentativas de logon

Como limitar tentativas de login no WordPress

Palavras finais

Agora você já sabe como bloquear o login de usuário do WordPress após algumas tentativas contínuas de falha. Ao restringir o número de tentativas falhas de login, é essencial para proteger o site. No entanto, lembre-se de que você também pode tentar logar e entrar com o usuário inválido, ou sua senha incorreta. Este limite, também vale para você que é o proprietário do site.

Isso protege especialmente um site WordPress do ataque de força bruta que tenta comprometer o processo de autenticação. Indefinidamente, para todos!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *