Foros del Web » Creando para Internet » Diseño web »

Spammers en formulario ¿cómo evitarlos?

Estas en el tema de Spammers en formulario ¿cómo evitarlos? en el foro de Diseño web en Foros del Web. Hola, feliz 2007 En los últimos días los spammers estan atacando un formulario de contacto que tengo en mi web, y usandolo para enviar publicidad ...
  #1 (permalink)  
Antiguo 01/01/2007, 14:44
Avatar de yayo_cev  
Fecha de Ingreso: julio-2004
Ubicación: IntheMatrix
Mensajes: 69
Antigüedad: 13 años, 5 meses
Puntos: 1
Spammers en formulario ¿cómo evitarlos?

Hola, feliz 2007

En los últimos días los spammers estan atacando un formulario de contacto que tengo en mi web, y usandolo para enviar publicidad a otras direcciones de correo

¿Cómo puedo evitarlo?

Un saludo y muchas gracias
  #2 (permalink)  
Antiguo 01/01/2007, 14:59
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 15 años, 11 meses
Puntos: 98
Re: Spammers en formulario ¿cómo evitarlos?

Una de las cosas mas sencillas y populares, es utilizar un captcha.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 01/01/2007, 15:06
Avatar de carlos.m  
Fecha de Ingreso: septiembre-2006
Mensajes: 436
Antigüedad: 11 años, 3 meses
Puntos: 1
Re: Spammers en formulario ¿cómo evitarlos?

pues si, captcha es sencillo y cumple su función.

aquí te dejo otro link: http://www.elguruprogramador.com.ar/...ver.asp?id=119
__________________
Hosting profesional al alcance de todos.
HostSuar.com - http://www.hostsuar.com
  #4 (permalink)  
Antiguo 01/01/2007, 16:05
Avatar de yayo_cev  
Fecha de Ingreso: julio-2004
Ubicación: IntheMatrix
Mensajes: 69
Antigüedad: 13 años, 5 meses
Puntos: 1
Re: Spammers en formulario ¿cómo evitarlos?

Gracias por vuestras respuestas

Me es complicado la programación del captcha, pero he visto que si no se valida el formulario, porque contiene errores, tambien me lo envia

¿Esto como se puede solucionar? O sea que si el formulario tiene errores, no sea validado y por lo tanto no lo envie

Saludos y reitero mi gratitud
  #5 (permalink)  
Antiguo 02/01/2007, 07:35
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 12 años, 9 meses
Puntos: 25
Re: Spammers en formulario ¿cómo evitarlos?

lenguaje? php? javascript?
__________________
Hospedaje Web al mejor costo!
  #6 (permalink)  
Antiguo 02/01/2007, 08:07
Avatar de yayo_cev  
Fecha de Ingreso: julio-2004
Ubicación: IntheMatrix
Mensajes: 69
Antigüedad: 13 años, 5 meses
Puntos: 1
Re: Spammers en formulario ¿cómo evitarlos?

El formulario esta creado con dreamweaver y el codigo que genera es el siguiente:
Código HTML:
function MM_validateForm() { //v4.0
 var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
 for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
   if (val) { nm=val.name; if ((val=val.value)!="") {
     if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
       if (p<1 || p==(val.length-1)) errors+='- '+nm+' debe ser una dirección de email válida.\n';
     } else if (test!='R') { num = parseFloat(val);
       if (isNaN(val)) errors+='- '+nm+' debe ser un número.\n';
       if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
         min=test.substring(8,p); max=test.substring(p+1);
         if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
   } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' es obligatorio.\n'; }
 } if (errors) alert('Han ocurrido los siguientes errores:\n'+errors);
 document.MM_returnValue = (errors == '');
}
Y para el formulario:
Código HTML:
<form name="form1" method="post" onSubmit="return validar('email','plantilla')" action="plantillas-webok.php">
                   <table width="67%" border="0" cellpadding="0" cellspacing="10" class="tablascontenido">
                     <tr>
                       <td width="32%" class="verdana10"><strong>Nombre:</strong></td>
                       <td width="68%"><input name="nombre" type="text" class="camposformulario" id="nombre" size="40"></td>
                     </tr>
                     <tr>
                       <td class="verdana10"><strong>Apellidos:</strong></td>
                       <td><input name="apellidos" type="text" class="camposformulario" id="apellidos" size="40"></td>
                     </tr>
                     <tr>
                       <td class="verdana10"><strong>E-mail:</strong></td>
                       <td><input name="email" type="text" class="camposformulario" id="email" size="40"></td>
                     </tr>
                     <tr>
                       <td class="verdana10"><strong>Teléfono:</strong></td>
                       <td><input name="telefono" type="text" class="camposformulario" id="telefono"></td>
                     </tr>
                     <tr>
                       <td class="verdana10"><strong>Plantilla elegida:</strong></td>
                       <td class="textopie"> <input name="plantilla" type="text" class="camposformulario" id="plantilla">
                         <br>
                         Introduzca la referencia de la plantilla de su agrado.
                         (Número naranja )</td>
                     </tr>
                     <tr>
                       <td class="verdana10"><strong>Observaciones:</strong></td>
                       <td><textarea name="consulta" cols="39" rows="4" class="camposformulario" id="consulta"></textarea></td>
                     </tr>
                     <tr>
                       <td class="verdana10"> </td>
                       <td><input name="Submit" type="button" class="boton-formulario" onClick="MM_validateForm('nombre','','R','apellidos','','R','email','','RisEmail','telefono','','RisNum','plantilla','','RinRange52:250');return document.MM_returnValue" value="Enviar">
                             <input name="Submit2" type="reset" class="boton-formulario" value="Borrar"></td>
                     </tr>
                   </table>
                 </form> 
En estos momentos tengo deshabilitado el botón enviar.
Saludos y muchas gracias por su ayuda
  #7 (permalink)  
Antiguo 03/01/2007, 21:01
 
Fecha de Ingreso: diciembre-2005
Mensajes: 29
Antigüedad: 12 años
Puntos: 0
Re: Spammers en formulario ¿cómo evitarlos?

saludos,
contra los spamers, olvidate de las validacions javascript, se saltean muy facil si no armas bien tu php.

la mas facil es bajarse tu pagina, solo donde tienes el formulario, modificarla a gusto, o sea, quitar todos los chequeos javascript de los ingresos, linkear a la ruta ABSOLUTA de tu php, modificar los campos TO, agregar el campo BCC: que se hace muy sencillo, y modificar el contenido del mensaje para enviar todo lo que quieran.

alguna de las precauciones, ademas del capcha, que si no lo vas a implementar debes tener si o si en cuenta.

1, que el php solo sea accesible / y solo reciba las variables desde UN unico dominio. de lo contrario que muestre mensaje de error.

2, no permitir desde php el ingreso de comillas puntos y @ en ninguno los campos, y para el campo e-mail, hacer una unica exepcion de colocar solo una @.

2,b No debes nunca usar nombres para tus paginas como: form, mail, e-mail, mailform, formMail, ni nada que se le parezca, los buscadores de formularios automaticos, buscan por nombres de archivos y saltan de links en links buscando paginas llamadas p.e form.php o form.htm o form.xhtml y demas... por lo tanto es otro punto a favor jamas usar esos nombres para tus formularios. y ojo, que los buscadores no rastrean esos 5 nombres... buscan montones de convinaciones posibles.

3, si llevas el punto 1 y 2 veras que el spamer solo podrá enviar de a un e-mail por vez, pues la proxima es usar sesiones, que nadie pueda enviar mensajes por mas de x tiempo.

4, añadir todas las protecciones posibles mediante javascript, la idea es que primero, nadie pueda echar mano a html, bloqueando opciones desde php, y luego bloquear el html para que tampoco puedan usar autocompletadores en tu web.

5, y esta deberias hacerla antes de las otras, consultar con tu servidor de hosting, la mayoria de los servidores poseen formularios seguros disponibles para los usuarios, esto les evita problemas, pues que te usen el formulario a ti, significa que coloquen en lista negra los ip de tu servidor de hosting y luego tu servidor tiene problemas con sus clientes a casusa de un formulario. es negocio para ellos facilitarte el form. si no te facilitan el formulario es probable que te puedan dar informacion muy util sobre como armar un form seguro.

saludos,

En cuanto a toda la parte tecnica, pues, yo no soy un programador php avanzado, solo diseñador, pero en mi grupo de trabajo, estoy con 2 programadores php y entre los 3 hemos podido darle pela a los spamers

y solo decirte que todas las precauciones que tomes siempre serán pocas.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:44.