Foros del Web » Programando para Internet » ASP Clásico »

Prevenir spam en envío de formularios

Estas en el tema de Prevenir spam en envío de formularios en el foro de ASP Clásico en Foros del Web. Estimados todos: Estoy haciendo una aplicación que requiere el uso de AJAX para algunos formularios, aunque tienen la condición que funcionan como formularios por post ...
  #1 (permalink)  
Antiguo 21/08/2008, 18:40
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Prevenir spam en envío de formularios

Estimados todos:

Estoy haciendo una aplicación que requiere el uso de AJAX para algunos formularios, aunque tienen la condición que funcionan como formularios por post si el usuario tiene JavaScript desactivado.

El uso de JavaScript supone que tengo que envíar valores por URL del archivo del form a un archivo "trigger" el cuál se encarga de recoger los valores, llamar al método correspondiente de envío de email y regresar una respuesta; al ser un archivo en aislamiento, se encuentra desprotegido ante eventuales ataques de spambots.

No puedo usar un captcha para protegerlo pues se necesitaría pasar el valor por URL -sale la misma cosa- y utilizar REFERER me parece además de anticuado, insuficiente.

¿Alguna idea para que este archivo solo permita llamadas locales?


Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #2 (permalink)  
Antiguo 21/08/2008, 20:14
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Respuesta: Prevenir spam en envío de formularios

, creando una semilla al cargar el formulario, guardandolo en el servidor para posterior verificacion, sin esta semilla no continuaria....

esta semilla podria utilizar la ip del cliente, junto con algunos hashes que serian aleatorios, o algunos datos encriptados

no se que opine chief??
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #3 (permalink)  
Antiguo 21/08/2008, 22:21
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Respuesta: Prevenir spam en envío de formularios

Una sesión o una cookie...con algún identificador, suena bien caballero del zodiaco, el único problema sería que si no hay cookies, no hay formularios...

Una cosa que se me ocurrió en el camino fué hacer un text con un value vacio, y ocultarlo con css, si dicho campo llega lleno quiere decir que lo llenaron automáticamente, y entonces se rechaza, aunque siempre existe la alternativa de los usuarios curiosos que deshabilitan las css.

¿Usted que opina?
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #4 (permalink)  
Antiguo 22/08/2008, 08:45
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Respuesta: Prevenir spam en envío de formularios

Cita:
Iniciado por u_goldman Ver Mensaje
Estimados todos:

Estoy haciendo una aplicación que requiere el uso de AJAX para algunos formularios, aunque tienen la condición que funcionan como formularios por post si el usuario tiene JavaScript desactivado.
----------------------------
No puedo usar un captcha para protegerlo pues se necesitaría pasar el valor por URL -sale la misma cosa- y utilizar REFERER me parece además de anticuado, insuficiente.
A ver, eso no lo entiendo ..... ¿por qué eso de que se mandan por post si tiene js desactivado? ¿por qué no mandas SIEMPRE por post el formulario con Ajax?

Cita:
El uso de JavaScript supone que tengo que envíar valores por URL del archivo del form a un archivo "trigger" el cuál se encarga de recoger los valores, llamar al método correspondiente de envío de email y regresar una respuesta; al ser un archivo en aislamiento, se encuentra desprotegido ante eventuales ataques de spambots.
--------------------------
Una cosa que se me ocurrió en el camino fué hacer un text con un value vacio, y ocultarlo con css, si dicho campo llega lleno quiere decir que lo llenaron automáticamente, y entonces se rechaza, aunque siempre existe la alternativa de los usuarios curiosos que deshabilitan las css.
Pues si, creo que cumple el objetivo, aunque igual no entiendo por que no usas un simple hidden.
Yo me iría por lo que Shiryu_Libra recomienda, es así como funciona el MD5 si te fijas, se encripta en el cliente con una semilla, luego en el servidor con esa misma semilla y si coincide ya la hiciste, como Shiryu_Libra comenta puedes generarte una semilla en base solo a algo que este en local y que el spammer no tenga a la mano.
  #5 (permalink)  
Antiguo 22/08/2008, 11:52
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Respuesta: Prevenir spam en envío de formularios

Cita:
Iniciado por Myakire Ver Mensaje
A ver, eso no lo entiendo ..... ¿por qué eso de que se mandan por post si tiene js desactivado? ¿por qué no mandas SIEMPRE por post el formulario con Ajax?
A lo mejor no me expresé correctamente, a lo que me refería es a lo siguiente

Código:
<input type="button" value="Enviar" onclick="funcionQueLlamaAjax();" class="noscript" />

<noscript>
   <link rel="stylesheet" href="noscript.css" media="all"></link>
   <input type="submit" value="Enviar" />
</noscript>
Donde la css tiene un display:none; para la clase noscript, esto es, si el cliente tiene javascript desactivado el tag de noscript mostrará un botón de submit y la css correspondiente para ocultar el botón que llama al método AJAX, y mostrará el submit para envíar el formulario.

Cita:

Pues si, creo que cumple el objetivo, aunque igual no entiendo por que no usas un simple hidden.
Porque de la manera que funcionan los spam bots es llenando los campos que se supone deberían ser llenados, un hidden puede o no tener valor porque no depende realmente del usuario, entonces la idea es hacer un campo que funcione como hidden pero para los spam bots sea un input más a llenar.

Cita:
Yo me iría por lo que Shiryu_Libra recomienda, es así como funciona el MD5 si te fijas, se encripta en el cliente con una semilla, luego en el servidor con esa misma semilla y si coincide ya la hiciste, como Shiryu_Libra comenta puedes generarte una semilla en base solo a algo que este en local y que el spammer no tenga a la mano.
Gracias, como comenté me parece una excelente idea, solo que no me deja cómodo el hecho de que no se podría envíar el formulario en caso de no tener cookies, pero siempre se debe correr cierto riesgo

¿Alguna otra idea?
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #6 (permalink)  
Antiguo 22/08/2008, 12:07
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Respuesta: Prevenir spam en envío de formularios

pues no necesariamente tendria que ser una session o cookie, por que si bien sabemos se podria realizar un procedimiento basado en XML o en una tabla temporal para dichos usuarios.....



en relacion a lo del CSS, pues eso vendria siendo un albur... ya que si bien es cierto que la gran mayoria de los usuarios sabe deshabilitar el javascript, pocos son los que deshabilitan el CSS, en esos raros casos, es cuando podrias tomar el consideracion el metodo de ataque del SPAM

por que no llamamos a los de CSS para que nos den una alternativa en relacion al deshabilite de CSS???

ideas lokas de viernes frenetico
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #7 (permalink)  
Antiguo 22/08/2008, 12:11
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Respuesta: Prevenir spam en envío de formularios

Cita:
Iniciado por Shiryu_Libra Ver Mensaje
pues no necesariamente tendria que ser una session o cookie, por que si bien sabemos se podria realizar un procedimiento basado en XML o en una tabla temporal para dichos usuarios.....
Creo que acabas de dar en el clavo, una tabla tempral en otra base de datos (para evitar las transacciones en la misma) que asocie el session.sessionID con un hash insertado en el onsubmit o mediante el método AJAX de tal manera que pueda ser un componente que solamente se pueda "conectar encima" de las formas, y si la conexión a aquella base de datos falla, el form se envía de todas maneras. El registro en cuestión se borraría una vez envíada la forma.

Buen punto, creo que trabajaré por esa senda
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #8 (permalink)  
Antiguo 22/08/2008, 13:38
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Respuesta: Prevenir spam en envío de formularios

.... Salut!! por eso .....

....
Cita:
que no se le olvide proporcionar el codigo para que otros usuarios lo pueda mirar
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #9 (permalink)  
Antiguo 22/08/2008, 13:40
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Respuesta: Prevenir spam en envío de formularios

Si, de hecho lo voy a colgar aquí tan pronto lo termine así me ayudan con la testeada
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #10 (permalink)  
Antiguo 22/08/2008, 18:05
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Respuesta: Prevenir spam en envío de formularios

No pues yo creo que Shiryu_Libra y u_goldman toman de la misma botella, por que la neta parece que el asunto era más claro que el agua y yo no me enteré (y sigo sin enterarme) exactamente del asunto

En fin, seguro es por que hesta semana he quemado demasiadas neuronas aquí en la chamba (y no trabajo en una cantina )
  #11 (permalink)  
Antiguo 22/08/2008, 18:07
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Respuesta: Prevenir spam en envío de formularios

jajajjajajajjaja, bueno.... pero pase la botella para aka

__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #12 (permalink)  
Antiguo 22/08/2008, 20:32
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Respuesta: Prevenir spam en envío de formularios

me apunto en:

- la botella
- y ver el codigo


a su salud!

:)
__________________
JuanRa Pérez
San Salvador, El Salvador
  #13 (permalink)  
Antiguo 22/08/2008, 21:37
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Respuesta: Prevenir spam en envío de formularios

Queridos todos, aquí les dejo el juguetito, aún está en alfa pero le hice dos que tres pruebas y se comporta aceptablemente, existe una condición que ya no me dió tiempo de manejarla, que corresponde al método DeleteAllUnusedSeeds() este método lo implementaré después -a ver cuando - básciamente la lógica detrás de él, es eliminar todas las entradas cuyo campo de fecha es de hace 30 minutos o más, pues seguramente la forma nunca será envíada mediante esa sesión.

La lógica de la aplicación está descrita anteriormente, y el ejemplo está muy sencillo es una forma envíada por post, pero la implementación puede ser hecha con valores recuperados por querystring, básicamente se trata de pasar ciertos valores a un objeto ASP, todo está encapsulado para mayor transparencia de implementación.

Comentarios, sugerencias e insultos son siempre bienvenidos.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #14 (permalink)  
Antiguo 23/08/2008, 21:21
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Respuesta: Prevenir spam en envío de formularios

hasta ahorita todavia no puedo hecharlo a volar, por que no tengo instalados los IIS, en ninguna de mis maquinas

y como apenas acabo de obtener una pequeña laptop (XPS M1210), que viene con vista, pues ando realizando las instalaciones pertinentes de los programas

pero nomas termine, y ataco ese codigo para los "Comentarios, sugerencias e insultos" requeridos en el presente post



pero a simple vista en el notepad, se paso Master

ya estoy esperando a que llegue Sensei Tiguron, para la ronda ....

salut!!
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #15 (permalink)  
Antiguo 25/08/2008, 09:31
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Respuesta: Prevenir spam en envío de formularios

Al rato le hecho un ojo a ver como el buen u_Goldman resolvió el problema

Cuándo lo haga complaceré a U_G dejándo mis apreciaciones en orden inverso a como lo solicitó
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 02:07.