26.2.07

Diários de um Captcha!

Recentemente tive o prazer de descobrir que meu sitezinho cresceu, e já é até alvo de ferramentas de spam automatizado! Quanta honra...
Ok, passado o orgulho inicial, vamos ao problema. A solução mais simples (e atualmente mais comum, Internet afora) para combater os spammers é conhecida por CAPTCHA. Em resumo, são aquelas imagens com texto distorcido, as vezes ilegíveis até mesmo por seres humanos convencionais.
Como qualquer solução no mundo Ruby, existe pelo menos uma dezena de bibliotecas de Captcha diferentes. Após testar um punhado, decidi por utilizar o plugin simple_captcha, por ser um dos mais simples de configurar e com menos dependências (somente o RMagick, veja você!). Este post mostra direitinho os passos para instalação e configuração do plugin.
Em 2 minutos estava com o plugin no ar, gerando texto distorcido para validar os posts de meus usuários. Tudo bom, tudo bonito.

Bug da Hora: unable to read font '(null)'
Como nada costuma funcionar logo de cara, o plugin resolveu entrar em greve quando fiz o deployment no servidor de produção (um box Linux):

ActionView::TemplateError (unable to read font `(null)') on line #49 of app/views/xxx/_xxxxx.rhtml:
46: <% end %>
47: <% if @map.captchaValidate %>
48:
49: <%= show_simple_captcha %>
50:
51: <% end %>

Não se trata de um problema com o simple_captcha, mas sim com o RMagick. Phew. Mais um dragão para derrubar...

Nenhum comentário: