Ver Mensaje Individual
  #47 (permalink)  
Antiguo 13/05/2010, 05:42
Avatar de Flow89
Flow89
 
Fecha de Ingreso: abril-2010
Ubicación: Valladolid
Mensajes: 346
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Seguridad en PHP [Importante];

jajajaja, nose, quiero hacer las cosas bien y me complico un huevo, me como la cabeza jajaja.

Respecto a lo de la contraseña, he intentado creando un usuario nuevo, y me dice que es incorrecto....

prueba david prueba [email protected]

logeo con el nombre prueba y la contraseña david, y no funciona XD

te dejo los codigos de login.php, ingresar.php y registrar.php

login
Código PHP:
<?php
  
include("conex.php");
  include(
"segu.php");
 
$loginCorrecto false;
$tNick mysql_real_escape_string($HTTP_COOKIE_VARS["usNick"]);
$tPass mysql_real_escape_string($HTTP_COOKIE_VARS["usPass"]);

$result mysql_query("SELECT * FROM usuarios WHERE nick='$tNick' AND password='$tPass'");
$rows mysql_fetch_array($result);
    if(
mysql_num_rows($result) == 1){
        
$loginCorrecto true;
    } else {
        
$loginCorrecto false;
    }
mysql_free_result($result);
  
?>
registrar.php
Código PHP:
<html>
<head>
<title>JuventudMDC - Panel de Administraci&oacute;n</title>
<link href="../css/general.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php  
  
include("conex.php");
  include(
"segu.php");

$nick mysql_real_escape_string($HTTP_POST_VARS[nick]);
$password mysql_real_escape_string($HTTP_POST_VARS[password]);
$nombre mysql_real_escape_string($HTTP_POST_VARS[nombre]);
$email $HTTP_POST_VARS[email];


if(
trim($nick) != "" && trim($password) != "" && trim($nombre) != "" && trim($email) != ""){
  
$sql "SELECT id FROM usuarios WHERE nick='$nick'";
  
$result mysql_query($sql);
  if(
$row mysql_fetch_array($result)){
  echo 
"<META HTTP-EQUIV=\"refresh\" CONTENT=\"2; url=fusuarios.php\">";
  echo 
"<table style=\"height:100%;width:100%;\"border=\"0\"><tr><td class=\"estilo34\"><div align=\"center\">Error, ese nick ya ha sido registrado. <br> Seras redireccionado automaticamente.</div></td></tr></table>";
  }
  else
  {

$sql "INSERT INTO usuarios (nick,password,nombre,email) VALUES('$nick', '$nombre ', '$password', '$email')";   
mysql_query($sql);


  echo 
"<META HTTP-EQUIV=\"refresh\" CONTENT=\"2; url=administracion.php\">";
  echo 
"<table style=\"height:100%;width:100%;\"border=\"0\"><tr><td class=\"estilo34\"><div align=\"center\">El registro del usuario se ha efectuado correctamente. <br> Seras redireccionado automaticamente.</div></td></tr></table>";
  }
  
mysql_free_result($result);
  }
  else
  {
  echo 
"<META HTTP-EQUIV=\"refresh\" CONTENT=\"2; url=fusuarios.php\">";
echo 
"<table style=\"height:100%;width:100%;\"border=\"0\"><tr><td class=\"estilo34\"><div align=\"center\">Debes rellenar todos los campos. <br> Seras redireccionado automaticamente.</div></td></tr></table>";
   }
  
mysql_close();
  
?>
</body>
</html>
ingresar.php
Código PHP:
 <html>
<head>
<title>JuventudMDC - Panel de Administraci&oacute;n</title>
<link href="../css/general.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php
   
include("conex.php");
   include(
"segu.php");

$nick mysql_real_escape_string($HTTP_POST_VARS["nick"]);
$password mysql_real_escape_string($HTTP_POST_VARS["nick"]);

 
  if(
trim("$nick") != "" && trim("$password") != "")
  {
$nickN mysql_real_escape_string($nickN);
$passN mysql_real_escape_string($passN);
$nickN htmlentities($nick);
$passN htmlentities($password);


  
$result mysql_query("SELECT password FROM usuarios WHERE nick='$nickN'");
  if(
$row mysql_fetch_array($result))
   {
  if(
$row["password"] == $passN)
  {
  
//La cookie dura 1 hora
  
setcookie("usNick",$nickN,time()+36000);
  
setcookie("usPass",$passN,time()+36000);
  echo 
"<table style=\"height:100%;width:100%;\" border=\"0\"><tr><td class=\"estilo34\"><div align=\"center\">Logueado correctamente, ahora sera dirigido a el panel de administración automaticamente.</div></td></tr></table>";
  echo 
"<META HTTP-EQUIV=\"refresh\" CONTENT=\"2; url=administracion.php\">";
  }
  else
  {
  echo 
"<META HTTP-EQUIV=\"refresh\" CONTENT=\"2; url=../panel.php\">";
  echo 
"<table style=\"height:100%;width:100%;\"border=\"0\"><tr><td class=\"estilo34\"><div align=\"center\"><br>Contraseña incorrecta. <br> Seras redireccionado automaticamente.</div></td></tr></table>";
  }
  }
  else
  {
  echo 
"<META HTTP-EQUIV=\"refresh\" CONTENT=\"2; url=../panel.php\">";
  echo 
"<table style=\"height:100%;width:100%;\"border=\"0\"><tr><td class=\"estilo34\"><div align=\"center\"><br>Ese Usuario no existe en la base de datos. <br> Seras redireccionado automaticamente.</div></td></tr></table>";
  }
  
mysql_free_result($result);
  }
  else
  {
  echo 
"<META HTTP-EQUIV=\"refresh\" CONTENT=\"2; url=../panel.php\">";
  echo 
"<table style=\"height:100%;width:100%;\"border=\"0\"><tr><td class=\"estilo34\"><div align=\"center\"><br>Debe especificar un nick y password. <br> Seras redireccionado automaticamente.</div></td></tr></table>";
  }
  
mysql_close();  
  
?> 
</body>
</html>
Pienso que el fallo esta en registrar.php en la linea

if($row["password"] == $passN)
{

que alomejor deberia hacer un if($row(mysql_real_escape_string(["password"])) == $passN)

pero nose, pueden ser tantas cosas que ni idea..