Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal,
Tenho em alguns sites que desenvolvi, na página de contato, um form que envia os dados para uma página .asp que processa as informações, formata e envia por CDOSYS ou CDONTS.
Todos os sites que são assim, sem exceção, enviam mensagens de contato que parecem ter sido criadas por bots, cada hora vindo de um IP diferente, sempre internacional. Veja exemplo abaixo:
>
CONTATO PELO SITE
--------------------------------------
Data/Hora de Envio: 3/5/2010 18:45:09
IP do usuário: 74.207.251.145
Nome: tpmRxaHhT
Email: yxhqis@vnocjl.com
Fone: (Uox) PFWzrCqvsIdpIgQ - Ramal: flErszGIYHnESjo
Cidade: 0
Estado: GO
Mensagem: CVnqNE ndyllwhhvyud <http://ndyllwhhvyud.com/> , afomebczbhgd, [link=http://vmjeoujlqwzv.com/]vmjeoujlqwzv[/link], http://czgwzqlitjqu.com/
Já tentei o esquema de verificar na página de processamento se a requisição veio da página do form (com HTTP_REFERER), mas não adianta. Continuam enviando estas mensagens.
Que raio é isso? Alguém sabe, já passou por isso? Como bloquear?
Agradeço antecipadamente.
Abraços
Olá Xar,
Então, tentei isso, mas não funcionou em nenhum dos sites. Meu script é basicamente isso aí mesmo.
Fiz com a mesma comparação, só que quando detectava injection mandava o e-mail só pra mim, e não pro cliente. O que acontecia é que muitas vezes passava o injection normal, chegando ao cliente, e outras vezes bloqueava e-mails válidos, preenchidos pelo form, mas que vieram com o HTTP_REFERER vazio sabe-se lá porque.
Ainda não entendi porque falha em bloquear injection e bloqueia envios legítimos.
Veja abaixo
Function validaOrigemDados()
nameServer = Request.ServerVariables("SERVER_NAME")
urlOrigem = Request.ServerVariables("HTTP_REFERER")
posNameServer = Instr(urlOrigem,nameServer)
If posNameServer = 0 OR IsNull(posNameServer) Then
validaOrigemDados = false
Else
validaOrigemDados = true
End If
End Function
tenta usar assim:
<% 'Se não vier do meu dominio ou vim em branco vai bloquear
IF Request.ServerVariables("HTTP_REFERER") <> Request.ServerVariables("SERVER_NAME") and Request.ServerVariables("HTTP_REFERER") = "" THEN response.redirect("sua_pag_blokeada")
ELSE %>
aki seu codigo
<% End IF %>