Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Tenho um pequeno formulário com input text onde só vai executar a action após passar por uma validação em javascript e nele fazer o "document.contato.submit();".
Porém, alguns spammers (maioria de origem chinesa) estão conseguindo burlar a validação (não preenchem campos obrigatórios com trim e regex). Com o $_SERVER['HTTP_REFERER'] da pra saber que o cara está realmente na página de contato do meu site ao enviar o e-mail.
Pra tentar prevenir, mudei o name e id dos itens do formulário onde remetiam a referência de "email".
Devo desistir da validação javascript e validar mais profundamente por php? Usar ferramentas antispam do servidor? Rezar pro meu santo?
Desde já grato pela ajuda/conselho/dica.
Estou abismado de como é fácil burlar o JS... tava brincando com o meu browser e fui em inspecionar e editei o botão do site.
Antes: <input type="button" value="Enviar" onClick="valida_contato();">
Depois: <input type="submit" value="Enviar">
Editei no próprio navegador e funcionou como se tivesse alterando o arquivo no servidor. Disso eu não sabia.
A validação com JS é meramente para comodidade do usuário, NUNCA se deve confiar nisto. A validação obrigatória e profunda SEMPRE deve ser feita no servidor, seja qual linguagem estiver sendo utilizada.
Além de implementar uma validação, use um captcha para dificultar a ação de bots.