Modificações no Akismet

Numa tentativa de melhorar o bloqueio de comment spam, fiz algumas modificações no plugin “Akismet” (excelente, aliás!) para o WordPress. A modificação consiste em adicionar uma nova tabela no banco de dados do WP:

create table wp_spammers (
    spammer_ID integer not null auto_increment,
    remoteAddr text,
    primary key(spammer_ID)
);

E adicionar as seguintes linhas na função ksd_auto_check_comment() do akismet.php (wp-content/plugins/akismet/akismet.php), dentro do if (‘true’ == $response[1]):

    global $wpdb;
    $wpdb->query(“INSERT INTO wp_spammers (remoteAddr) VALUES (‘” . $comment['user_ip'] . “‘)”);

Isso irá adicionar uma entrada no banco de dados para cada spammer pego automaticamente pelo Akismet. Agora vem o truque: coloque esse shell script para rodar no cron. Modifique as variáveis no começo dele para suas configurações (nome de usuário do mysql, senha, nome do banco, etc). Eu o coloquei para rodar de hora em hora. Esse script irá ler essa tabela que acabamos de criar e adicionar entradas no /etc/hosts.deny, barrando completamente o acesso do spammer à sua máquina. Para que o arquivo não fique cada vez maior, ele adiciona a data e hora atual para cada entrada, e remove automaticamente as entradas com mais de um dia de idade.

Have fun! :D

Leave a Comment