Se você tem um blog com WordPress que permite o registro de usuários, como o RBtech, provavelmente já teve problema com spammers se registrando em seu blog para publicar todo tipo de conteúdo em comentários ou fóruns do bbPress. Em outra dica que eu dei há algum tempo atrás eu mostrei uma forma de bloquear spam dos comentários, e hoje chegou a vez de acabar com os registros de usuários fakes do seu blog.
Durante algum tempo eu observei que os spammers sempre usavam os mesmos domínios para se registrar aqui no site, mudava o nome de usuário mas o domínio era sempre o mesmo. Pois bem, o jeito foi alterar a rotina de cadastro de usuários adicionando uma verificação adicional para saber se o email usado não pertencia a tal domínio.
Com o seguinte código no meu arquivo functions.php, o problema foi resolvido:
//bloqueia registro de spammers
function rb_blockspamregister($errors, $sanitized_user_login, $user_email){
$spammer = FALSE;
if(strpos($user_email, 'sogou.com') !== FALSE) $spammer = TRUE;
if(strpos($user_email, 'yeah.net') !== FALSE) $spammer = TRUE;
if(strpos($user_email, '163.com') !== FALSE) $spammer = TRUE;
if($spammer == TRUE) $errors->add('spammer', '<strong>ERRO FATAL</strong>: Seu email esta proibido neste site por suspeita de spam!');
return $errors;
}
add_filter('registration_errors', 'rb_blockspamregister', 10, 3);
Note que aqui eu estou bloqueando 3 domínios específicos (sogou.com, yeah.net e 163.com), mas você deverá colocar os domínios conforme identificado no seu blog. Você pode ainda criar um array com todos os domínios a serem bloqueados e então fazer a verificação para identificar se o email que está sendo registrado faz parte de alguma restrição.
A flexibilidade dessa função permite que você com um pouco de lógica crie rotinas de validação muito específicas e eficientes conforme sua necessidade, mas isso fica a critério de cada um testar e implementar.
Adicionalmente você pode consultar a documentação oficial desta função diretamente no Codex.
Espero que a dica seja útil!
Compartilhe esse post:Sou técnico em hardware e desenvolvedor web, e sobre estes dois assuntos comecei a compartilhar aulas e artigos, tornando-me blogueiro em 2008. Em 2010 esse hobby virou profissão, e desde então tenho buscado melhorar e profissionalizar cada vez mais os projetos que mantenho na web.
Atualmente temos 13 comentários para este post. Participe você também, clique aqui e comente sobre o assunto.
Em teoria, agora você testa.
ResponderObrigado pela dica, me ajudou muito.
Parabéns.
Olá, pode ajudar tentei fazer mais não fui feliz, sei que estou fazendo alguma coisa errada mais não sei onde estou errando se puder ajudar fico grato, obrigado.
/wp-includes/functions.php tentei aqui 1º e nada.
/wp-content/themes/themes/functions.php tentei aqui por 2º e nada tb
ResponderO código deve ser colocado no arquivo functions.php DO SEU TEMA.
ResponderParabéns e obrigado, funcionou perfeitamente.
ResponderOlá, há como fazer o inverso ? eu permitir somente dominios .com e .com.br ?
ResponderÉ só inverter a lógica e adaptar para sua necessidade.
ResponderOlá,
em que parte você coloca esse código? Pode colocar em qualquer parte do functions.php?
Sim, em qualquer parte!
ResponderOk, obrigado.
Vou testar.
Perfeito! muito obrigado!
já estava desanimado de ficar excluindo spamers dos domínios 163.com, e mail.ru
Muuuuuuuuuuuuuuuuito obrigado pela dica
Responder© 2008-2023 - RBTech.info | Todos os direitos reservados | Hospedado por Innova Host
É proibida a reprodução total ou parcial de qualquer conteúdo deste site.
Opaaa isso funcionaria?
//bloqueia registro de dominios que não sejam sogou.com yeah.net 163.com
function rb_blockspamregister($errors, $sanitized_user_login, $user_email){
$spammer = TRUE;
if(strpos($user_email, 'sogou.com') !== TRUE) $spammer = FALSE;
if(strpos($user_email, 'yeah.net') !== TRUE) $spammer = FALSE;
if(strpos($user_email, '163.com') !== TRUE) $spammer = FALSE;
if($spammer == TRUE) $errors->add('spammer', 'ERRO FATAL: Seu email esta proibido neste site por suspeita de spam!');
return $errors;
}
add_filter('registration_errors', 'rb_blockspamregister', 10, 3);