Ver Mensaje Individual
  #3 (permalink)  
Antiguo 07/06/2008, 11:06
Avatar de Potro
Potro
 
Fecha de Ingreso: abril-2001
Mensajes: 2.249
Antigüedad: 23 años
Puntos: 39
Respuesta: Me estan hakeando mi forma de votación que hago

Pongo el codigo de primer paso de votacion..

<?
//Conesto recibo el email de quien vota y por que video o foto votora
$email=$_POST['email'];
$idvideo=$_POST['idvideo'];

//Me conecto
include("conex.php");
$link=Conectarse();

//Verifico que el id del video exista
$result=mysql_query("select * from tbl where id_user_video = '$max1'",$link);
$cuenta = mysql_num_rows($result);

//Y para mandar el mail valido que si exista el id de video
if ($cuenta == 1 )
{

//Genero mi clave alfanumerica aleatoria
function crear_semilla() {
list($usec, $sec) = explode(' ', microtime());
return (float) $sec + ((float) $usec * 100000);
}
srand(crear_semilla());
$clave="";
$max_chars = round(rand(30,30)); // tendrá entre 7 y 10 caracteres
$chars = array();
for ($i="a"; $i<"z"; $i++) $chars[] = $i;
$chars[] = "z";
for ($i=0; $i<$max_chars; $i++) {
$letra = round(rand(0, 1));
if ($letra) // es letra
$clave .= $chars[round(rand(0, count($chars)-1))];
else // es numero
$clave .= round(rand(0, 9));
}

//Inserto el voto en las tabla de confirmacion
mysql_query("insert into tbl_confirma (mail_voto_confirma, max_voto_confirma, fecha_voto_confirma, status_voto_confirma, aleatorio_voto_confirma) values ('$email', '$idvideo', '$fechis', '0', '$clave')",$link);


//Y les envio un mail
$sfrom="[email protected]"; //cuenta que envia
$sdestinatario=$email; //cuenta destino
$ssubject="¡Gracias! Confirma tu voto:"; //subject
$shtml="
<a href=http://www.site.com/pagina.php?email=$email&idvideo=$idvideo&code=$cla ve>Confirmar voto</a>
"; //mensaje
$sheader="From:".$sfrom."\nReply-To:".$sfrom."\n";
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n";
$sheader=$sheader."Mime-Version: 1.0\n";
$sheader=$sheader."Content-Type: text/html";
mail($sdestinatario,$ssubject,$shtml,$sheader);

?>


Asi funciona el primer paso para votar ahora les digo como recibo y valido...


<?
//Recibo los 3 campos que envie
$email=$_GET['email'];
$idvideo=$_GET['idvideo'];
$aleatorio=$_GET['code'];

//Me conecto
include("conex.php");
$link=Conectarse();

//Veo si los datos considen con mi tabla de confirmacion
$result3=mysql_query("select * from tbl1 where mail_voto_confirma = '$email' and max_voto_confirma = '$idvideo' and aleatorio_voto_confirma = '$aleatorio' and status_voto_confirma = 0",$link);
$cuenta3 = mysql_num_rows($result3);


//Y si todos los datos son correctos pues agrego el voto a la tabla correspondiente
mysql_query("insert into tbl2 (id_user_voto, id_video_voto, medio_voto, ip_voto, fecha_voto) values ('$email', '$idvideo', 'WEB', '$dir_IP', '$fechis')",$link);

//Y cambio el status de ese participonte para que ya no pueda volver a votar
mysql_query("update tbl_confirma set status_voto_confirma=1 WHERE mail_voto_confirma='$email' and max_voto_confirma='$idvideo' and aleatorio_voto_confirma = '$aleatorio'",$link);

?>



Realmente yo veo que es confiable pero como tu dices me pueden estar inyectando desde otro lado pero lo que yo no me explico como le hacen para saber el codigo alfanumerico que genere y por logica tiene que saber.


Bueno espero su valiosa ayuda para ver si puedo hacer mas seguro esto..

y mi estimado como es eso de register_globals ON la verdad no tengo idea.. de que sea..

Saludos
__________________
Paginación en FLASH,

http://www.forosdelweb.com/f62/pagin...o-aqui-540241/

Última edición por Potro; 07/06/2008 a las 11:32