Ver Mensaje Individual
  #4 (permalink)  
Antiguo 17/09/2008, 13:33
Avatar de Dundee
Dundee
 
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 11 meses
Puntos: 8
Respuesta: duda sobre email roboto típico de registros en webs

Me respondo a mi mismo por si a alguien le puede servir:

He tomado la decisión de comprobar si un usuario ya había validado su cuenta anteriormente y de ser así no realizar el UPDATE nuevamente para evitar posibles peticiones para saturar la Bd.

He creado dos simples scripts , register.php (archivo que se ejecuta cuando un usuario se registra desde la web y envía el mail automático a la espera de ser validado) y valida_user.php (archivo que se ejecuta cuando el usuario hace clic en el link que se le envía al correo).

valida_user.php
Este archivo comprueba leyendo un archivo mails.txt si está el mail escrito y sino lo escribe , si lo está sale de la aplicación y no hace el UPDATE ¡¡oxígeno para la bd¡¡ (ahora me estoy planteando guardar las IPS de los usuarios para comprobar abusos intencionados del archivo mails.txt).
Código:
<? 


echo top_menu(); ?>

<?

//Comprobamos que no se ha validado previamente
if (check_validate($_GET['user']) ) //esta función devuelve true si ha encontrado
                                               //este email previamente registrado 
                                               //(abajo la pongo)
{
	echo "Usuario ya registrado";
	exit;
 }
 else
 {

//abrimos archivo y escribimos el mail para controlar que las validaciones desde el mail se hagan una sola vez 
		$archivo=fopen("users/mails.txt" , "a");
		if ($archivo) {
		fputs ($archivo, "$_GET[user]\n");
			}
		fclose ($archivo); 

}
 if (  is_prev_register_user($_GET['user'])  ){
	echo "<p>Completado registro de usuario ". $_GET['email']."</p>";
	echo "<p> Por favor haga <a href='categories.php'>Clic aqu</a> para identificarse y poder comenzar a utilizar andanuncios </p>";
	}	 
?>
function is_prev_register_user($email)
Código:
function is_prev_register_user($email) {
 $conex=db_connect();
 if (!$conex)
 return 0;

$password= md5 ($pwd); 

$query = "UPDATE users SET Status = '1' WHERE email= '$email' ";

$result = mysql_query($query, $conex) or die("<br><h3>El usuario no existe </h3>".mysql_error());

if (!$result)
return false;

return true;

}
Logicamente esto sucede despúes de haber hecho clic en el link del mail de confirmación que es tipo http://[email protected]

Ahora lo que se me ocurre es crear un script que lea las ips de los usuarios que intenten entrar por la web con el link que les llega por correo de forma abusiva, es decir si ejecutan el archivo de comprobación de emails 5 veces se les bannea ¿esto se puede hacer?.

Estaré encantado de cualquier sugerencia que me sirva para mejorar la seguridad.

Un saludo y gracias a todos