Foros del Web » Creando para Internet » Flash y Actionscript »

Capcha en flash: recibir variables de manera segura

Estas en el tema de Capcha en flash: recibir variables de manera segura en el foro de Flash y Actionscript en Foros del Web. Hola. Estoy queriendo implementar un captcha en mi proyecto (en php). El script trabajaría de la siguiente forma: 1. En el script php genero una ...
  #1 (permalink)  
Antiguo 05/02/2009, 12:31
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años
Puntos: 9
Capcha en flash: recibir variables de manera segura

Hola. Estoy queriendo implementar un captcha en mi proyecto (en php). El script trabajaría de la siguiente forma:

1. En el script php genero una cadena aleatoria
2. Guardo esta cadena en una sesión php
3. Envío de alguna forma segura esta cadena a la película flash
4. En la película, muestro esta cadena con un fondo degradado generado aleatoriamente y los caracteres moviendose (siempre respetando su orden)
5. Una vez que se envia el formulario html verifico en el script php si el usuario ha ingresado el valor correcto

Mi duda está en el paso 3. ¿Cómo hacer para enviar variables de manera segura?. Con esto me refiero a que no es suficiente mostrando escribiendo las variables en la salida de la forma nombre_variable1=valor1&nombre_variable2=valor2... . porque estos valores pueden ser leídos por los bots.
¿Que otras alternativas hay para el envío de variables desde php a flash?.
Saludos.

EDITO: Estoy utilizando Action Script 3.0
__________________
Add, never Remove

Última edición por mariano_donati; 05/02/2009 a las 12:40
  #2 (permalink)  
Antiguo 05/02/2009, 13:15
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años
Puntos: 9
Respuesta: Capcha en flash: recibir variables de manera segura

Buscando y buscando al fin pude encontrar que me hacia falta, pero todavía no logré hacerlo funcionar.
Este es mi script flash:

var req:URLRequest = new URLRequest('Captcha.php');
var loader:URLLoader = new URLLoader(req);

loader.addEventListener(Event.COMPLETE, onComplete);
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
loader.load(req);

function onComplete(evt:Event):void
{
Char1.displayText.text = evt.target.data.myvar;
}


Me da un error que dice que un cuadro de texto no se le puede asignar un texto nulo. Es decir, que no estoy recibiendo ningún valor por parte del servidor.
Mi script php es muy simple, consta solamente de una línea:

echo('myvar=2');

¿Que estoy haciendo mal?
__________________
Add, never Remove
  #3 (permalink)  
Antiguo 05/02/2009, 20:02
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años
Puntos: 9
Respuesta: Capcha en flash: recibir variables de manera segura

Pude hacerlo de esta forma:

sendCaptcha("http://localhost/Captcha.php");

function sendCaptcha(url:String):void
{
var req:URLRequest = new URLRequest(url);
var vars:URLVariables = new URLVariables();

vars.randomstr = generateCaptcha();
req.data = vars;
req.method = URLRequestMethod.POST;
sendToURL(req);
}

function generateCaptcha():String
{

var digits:Array = new Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);

// ESCRIBE LA CADENA EN LOS CUADRO DE TEXTO
Char1.displayText.text = (String)(digits[Math.floor(Math.random() * 9)]);
Char2.displayText.text = (String)(digits[Math.floor(Math.random() * 9)]);
Char3.displayText.text = (String)(digits[Math.floor(Math.random() * 9)]);
Char4.displayText.text = (String)(digits[Math.floor(Math.random() * 9)]);

// CREAMOS LA CADENA
return (Char1.displayText.text + Char2.displayText.text +
Char3.displayText.text + Char4.displayText.text);

}

En el script php lo unico que hago es establecer una variable de sesion con el valor de la cadena generada. Solamente contiene números.
El script funciona como lo esperaba, aunque con un solo error. En la película cree cuatro interpolaciones de movimiento (una para cada caracter del captcha), entonces este script se vuelve a ejecutar una y otra vez. Probe haciendo stop(); pero me detiene toda la película, cosa que yo no quiero. ¿Cómo puedo hacer eso?.
Gracias de antemano.
__________________
Add, never Remove
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:02.