Foros del Web » Programando para Internet » PHP »

Mayor proteccion en registro de usuarios?

Estas en el tema de Mayor proteccion en registro de usuarios? en el foro de PHP en Foros del Web. Hola alguien me puede decir si hay algun modo de mejorar la seguridad en el siguiente codigo de registro de usuarios? y si lo hay ...
  #1 (permalink)  
Antiguo 26/04/2009, 15:54
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Pregunta Mayor proteccion en registro de usuarios?

Hola alguien me puede decir si hay algun modo de mejorar la seguridad en el siguiente codigo de registro de usuarios? y si lo hay podeis decir como?

Código PHP:
<?php
include("config.php");
// Preguntaremos si se han enviado ya las variables necesarias 
if (isset($_POST["email"])) { 
$correo $_POST["email"];
$password $_POST["password"]; 
$cpassword $_POST["cpassword"]; 

//recoger direccion ip
$ip $_SERVER['REMOTE_ADDR'];

// Hay campos en blanco 
if($password==NULL|$cpassword==NULL|$correo==NULL) { 
header("location: formreg.php?error=1"); 
}else{ 

//Validar direccion de email
if (!preg_match(
'/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',
$correo)) {
header("location: formreg.php?error=2"); 
}else{ 

//Minimo de caracteres en campo contraseña
if (strlen($password)<4)
{
header("location: formreg.php?error=3");
  
// no tiene mas de 4 caracteres
}else{

// ¿Coinciden las contraseñas? 
if($password!=$cpassword) { 
header("location: formreg.php?error=4");
}else{ 

//encriptar contraseña
$password md5($password);

// Comprobamos si la cuenta de correo ya existe 
$checkemail mysql_query("SELECT email FROM usu WHERE email='$correo'"); 
$email_exist mysql_num_rows($checkemail); 

if (
$email_exist>0) { 
header("location: formreg.php?error=5"); 
}else{

//Todo parece correcto procedemos con la inserccion 
$query "INSERT INTO usu (password, email, ip, fecha) VALUES('$password','$correo','$ip', NOW())"
mysql_query($query) or die(mysql_error()); 
echo 
"El usuario $correo ha sido registrado de manera satisfactoria.<br/>Esta parte de la página está en construcción.<br/><br/><a href=\"../../index.php\">Pulsa aquí para volver a la página principal.</a>";



}  
}
}
?>
  #2 (permalink)  
Antiguo 26/04/2009, 17:32
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 9 meses
Puntos: 32
Respuesta: Mayor proteccion en registro de usuarios?

Como recomendacion debes filtrar la informacion que recibes de los formularios

http://www.php.net/strip-tags

http://www.php.net/mysql_real_escape_string


Mira esta funcion (Elaborada por otro forero solo que no me acuerdo quien)

http://www.php.net/str_replace

function no_permitidos($cadena)
{
$nopermitidos = array("'",'\\','<','>',"\"",";","$","%","&","/","|","{","}","[","]","+","#");
$cadena = str_replace($nopermitidos,"", $cadena);
return $cadena;
}

Puedes buscar en el en el buscador del foro sobre filtrar informacion de formularios con esto evitas ataques por parte de usuarios malintencionados.

Investiga sobre inyecciones SQL y XSS
  #3 (permalink)  
Antiguo 26/04/2009, 17:34
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Mayor proteccion en registro de usuarios?

Usa SIEMPRE mysql_real_escape_string() con datos que provengan del cliente y que vayan a formar parte de una consulta sql.

Además, siempre es recomendado poner límites en cuanto a la longitud de datos ingresados (OJO, en plural, osea un límite inferior y también uno superior).

  #4 (permalink)  
Antiguo 26/04/2009, 17:43
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Mayor proteccion en registro de usuarios?

1º.- Si no entiendo mal quereis decir que ponga un limite de caracteres insertados maximo y un minimo de caracteres insertados no?

2º.- El codigo que yo uso es ese que publique mas arriba y la verdad es que no se como usar mysql_real_escape_string(), me podriais decir como se usaria en mi codigo para desde ahora en adelante saber como seria?

Muchas gracias.
  #5 (permalink)  
Antiguo 26/04/2009, 20:46
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 9 meses
Puntos: 32
Respuesta: Mayor proteccion en registro de usuarios?

Si podrias poner algo como el minimo de un login seria 6 caracteres y el maximo 12 cosas como esa, por la contraseña no te preocupes esa que tenga la longitud que se ha.
  #6 (permalink)  
Antiguo 27/04/2009, 07:25
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Mayor proteccion en registro de usuarios?

Vale hasta hay todo perfecto pero alguien me puede decir como uso mysql_real_escape_string() en mi codigo?

Gracias
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 14:44.