Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/04/2009, 17:42
Avatar de Dude--
Dude--
 
Fecha de Ingreso: junio-2004
Ubicación: Sevilla - España
Mensajes: 197
Antigüedad: 19 años, 10 meses
Puntos: 4
Seguridad en datos de entrada web

Bastante preocupado por lacras como el spam en las webs y sobre como filtrar la información de entrada que se produce en formularios, empecé a pensar sobre como mejorar o reemplazar a los "relativamente inseguros" captchas. Se que mucha gente ya habrá pensado uno basado en mostrar una imagen aleatorias (por ejemplo la foto de un perro) y preguntarle al usuario que esta viendo. Esto es bastante más difícil de reconocer para un ordenador, al menos hoy en día, pero tiene importantes limitaciones:

1. Es vulnerable a ataques con personas reales que verifican las imágenes de forma intencionada para ingresar datos falsos.

2. Como no es una imagen que se pueda pregenerar, al menos de forma eficiente, su "seguridad" ante bots está limitada al número de imágenes que tengas en tu BD.

Para el primer caso hay difícil solución, solo se me ocurre poner algún límite a la cantidad de información que puede entrar desde un determinado "usuario", habría que identificarlo mediante la ip (así al menos debería usar proxys cada vez que quisiera registrar más datos para cambiar su ip, o reiniciar el router), o mediante alguna cookie (si ya se que esto no es mucho, pero es cuestión de ir poniendo trabas).
Ejemplo: Desde una misma ip solo se pueden registrar 10 personas al día en la web y a partir de ahí tendrían que usar los métodos ya mencionados.

Para el segundo caso me pregunto si no sería posible utilizar google, esto es mediante programación del lado del servidor:
- Hacer una búsqueda de la palabra "perro".
- Coger una imagen de las que muestre google.
- Hacer una copia temporal de dicha imagen en nuestro hosting.
- Preguntar al usuario por la imagen.
- En caso de ser cierta o requerir otra imagen destruirla.
- Validación aceptada.
Algo así han empezado a hacer en el research de Microsoft: http://research.microsoft.com/en-us/...ojects/asirra/

Con esto tendríamos la ventaja de tener una BD de imágenes enorme y sin consumir recursos, por otro lado adquiriríamos una pequeña desventaja: Podría aparecer alguna imagen poco apropiada para la verificación del usuario (bueno esto podría solucionarse con un cartelito que pusiera imagen by google y darle al usuario la opción de marcarla como inadecuada, quedando guardada esa marcación y referencia a la imagen en nuestra BD para que no volviera a aparecer).

Otro método es utilizar imágenes transparentes para mediante css (los cuales no suelen interpretar los spambots) colocarlas unas encimas de otras y formar un captcha no deformado muy legible para un humano pero difícil de leer para un bot, porque debería posicionar las capas, tomar una captura del resultado y luego interpretarlo.

Otra idea que se me ocurrió es utilizar imágenes animadas o flash de la siguiente manera:
Todos conocemos los efectos ópticos, sin embargo estos no afectan a los ordenadores, estoy hablando de cosas como el efecto moire, lineas que son paralelas pero que en función del fondo que les pongamos, parecen curvarse... lineas que giran y forman un círculo...etc...
¿Cómo podría un ordenador leer un gif y ver que imagen se ha formado? poder podría pero ¿cual es la referencia? sería bastante complejo de programar un lector de estos datos.
__________________
"El camino empieza renunciando el control y volviéndose flexibles, como una brizna de paja en un huracán."

"Desconozco tanto... es excitante comenzar a nadar en este mar de dudas..."

Última edición por Dude--; 20/04/2009 a las 19:00