Estoy teniendo un detalle, estoy revisando la seguridad de mi sitio web ya que llevara un user login, pero estoy teniendo el problema de accesar. El registro tengo que la contraseña se encripte con MD5.
Pero ala hora de logearme me dice que la contraseña es incorrecta y esto es por que hace esto
if (row [$password] == $password) {
Entrar
}
en manera de texto lo que hace es validar si la contraseña introducida es igual ala de la base de datos
if (row [DF$$%DFD546ghDFGsdfs2#$%dfsAsdr$&] == prueba01 {
entrar
}
por tanto no es igual como le puedo hacer ahi y seguir manteniendo el encriptado? Espero puedan ayudarme amigos.
este es mi codigo de registrar.php
Código PHP :
<?php } // verificamos si se han enviado ya las variables necesarias. if (isset($_POST["name"])) { $name = $_POST["name"]; $last_name = $_POST["last_name"]; $password = $_POST["password"]; $password2 = $_POST["password2"]; $email = $_POST["email"]; // Hay campos en blanco if($name==NULL|$last_name==NULL|$password==NULL|$password2==NULL|$email==NULL) { echo "un campo está vacio."; formRegistro(); }else{ // ¿Coinciden las contraseñas? if($password!=$password2) { echo "Las contraseñas no coinciden"; formRegistro(); }else{ // Comprobamos si el nombre de usuario o la cuenta de correo ya existían $checkemail = mysql_query("SELECT email FROM users WHERE email='$email'"); $email_exist = mysql_num_rows($checkemail); if ($email_exist>0) { echo "La cuenta de correo se encuentra uso"; formRegistro(); } else { $query = 'INSERT INTO users (name, last_name, password, email, creation_date) VALUES (\''.$name.'\',\''.$last_name.'\',\'.md5($password).'\',\''.$email.'\',\''.date("Y-m-d").'\')'; mysql_query($query) or die(mysql_error()); echo 'El usuario <strong>'.$name.'</strong> <strong>'.$last_name.'</strong> ha sido registrado de manera satisfactoria.<br />'; ?> <?php } } } }else{ formRegistro(); } ?>
Este valida que exita y logearse
Código PHP :
<?php session_start(); //datos para establecer la conexion con la base de mysql. mysql_connect('localhost','u129824','#aLsoC0x')or die ('Ha fallado la conexión: '.mysql_error()); mysql_select_db('u129824_users')or die ('Error al seleccionar la Base de Datos: '.mysql_error()); function quitar($mensaje) { $nopermitidos = array("'",'\\','<','>',"\""); $mensaje = str_replace($nopermitidos, "", $mensaje); return $mensaje; } if(trim($_POST["email"]) != "" && trim($_POST["password"]) != "") { // Puedes utilizar la funcion para eliminar algun caracter en especifico //$usuario = strtolower(quitar($HTTP_POST_VARS["usuario"])); //$password = $HTTP_POST_VARS["password"]; // o puedes convertirlos a su entidad HTML aplicable con htmlentities $email = strtolower(htmlentities($_POST["email"], ENT_QUOTES)); $password = $_POST["password"]; $result = mysql_query('SELECT password, email FROM users WHERE email=\''.$email.'\''); if($row = mysql_fetch_array($result)){ if($row["password"] == $password){ $_SESSION["k_email"] = $row['email']; //echo 'Has sido logueado correctamente '.$_SESSION['k_name'].' <p>'; //header('Location: ../admin/index.php'); echo '<SCRIPT LANGUAGE="javascript">location.href = "index.php";</SCRIPT>'; //Elimina el siguiente comentario si quieres que re-dirigir automáticamente a index.php /*Ingreso exitoso, ahora sera dirigido a la pagina principal. <SCRIPT LANGUAGE="javascript"> location.href = "index.php"; </SCRIPT>*/ }else{ echo 'Password incorrecto'; } }else{ echo 'Usuario no existente en la base de datos'; } mysql_free_result($result); }else{ echo 'Debe especificar un usuario y password'; } mysql_close(); ?>
De igual forma si me pueden ayudar a ver si tengo buena seguridad.