Foros del Web » Programando para Internet » PHP »

¿Este código es seguro?

Estas en el tema de ¿Este código es seguro? en el foro de PHP en Foros del Web. Hola a todos, estoy haciendo una página web, hay una zona de dicha página en la que quiero entrar solamente yo, contiene información confidencial... lo ...
  #1 (permalink)  
Antiguo 17/07/2008, 16:56
 
Fecha de Ingreso: febrero-2008
Ubicación: Madrid
Mensajes: 474
Antigüedad: 16 años, 9 meses
Puntos: 1
Exclamación ¿Este código es seguro?

Hola a todos, estoy haciendo una página web, hay una zona de dicha página en la que quiero entrar solamente yo, contiene información confidencial... lo que he hecho es pedir mediante php un usuario y contraseña, que consulto en mysql, de existir doy vía libre de no existir vuelvo a pedir la contraseña. ¿Ese codigo es seguro para que no me entren? Os pongo el código de los dos archivos php.

El primero que pide usuario y contraseña:

<?php
$servidor="***";
$usuario="***";
$password="***";
$basedatos="***";
$conexion=mysql_connect($servidor,$usuario,$passwo rd) or die("No se puede realizar la conexión al servidor");
mysql_select_db($basedatos) or die("No se puede abrir la base de datos");
echo "<center>";
echo "<br><br><br><br><br><br><br>";
echo "<font color=\"#428DD9\" size=\"50\"><b>ZONA PRIVADA BGS-AE</b></font><p>";
echo "<br><br><br>";
echo "<img src=\"./candado.jpg\">";
echo "<center><font color=\"#428DD9\">";
echo "<FORM ACTION=\"./consulta.php\" target=\"_parent\" METHOD=\"POST\">";
echo "<br>";
echo "Usuario:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;";
echo "<input type=\"text\" name=\"usuario\" size=12><br>";
echo "Contraseña:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
echo "<input type=\"text\" name=\"contrasenia\" size=12><br>";
echo "<br>";
echo "<input type=\"submit\" value=\"Entrar\">";
echo "</FORM>";
echo "</body></html>";
?>


El segundo que consulta el usuario y contaseña:

<?php
$servidor="***";
$usuario="***";
$password="***";
$basedatos="***";
$conexion=mysql_connect($servidor,$usuario,$passwo rd) or die("No se puede realizar la conexión al servidor");
mysql_select_db($basedatos) or die("No se puede abrir la base de datos");
$consulta1="select count(*) from usuario where nombre=\"".$_POST['usuario']."\" and contrasenia=\"".$_POST['contrasenia']."\"";
$resultado1=mysql_query($consulta1);
$fila=mysql_fetch_array($resultado1);
if($fila[0]==0){
include("./contrasenia.php");
echo "<font color=\"#FF0000\" size=\"5\"><b>¡Nombre de usuario o contraseña incorrecta!</b></font><p>";
exit();
}
if($fila[0]>0){
include ("zonaPrivada.html");
exit();
}
?>


El código funciona bien, pero no se si por fuerza bruta o por otros métodos es vulnerable.

Muchas gracias.
  #2 (permalink)  
Antiguo 17/07/2008, 18:31
Avatar de JoniJnm  
Fecha de Ingreso: mayo-2007
Ubicación: Madrid
Mensajes: 264
Antigüedad: 17 años, 6 meses
Puntos: 4
Respuesta: ¿Este código es seguro?

Está bien, pero depende de lo que tengas en el archivo zonaPrivada.html

Por ejemplo puedes poner en la consulta:
Código PHP:
$name mysql_query("SELECT name FROM usuario where nombre='".$_POST['usuario']."' and contrasenia='".$_POST['contrasenia']."'");
$name mysql_fetch_array($name);
$name $name[0];
if(
$name){
   include(
"./contrasenia.php");
}
else { echo 
"<font color=\"#FF0000\" size=\"5\"><b>¡Nombre de usuario o contraseña incorrecta!</b></font><p>"; } 
Y en el zonaprivada:

Código PHP:
if (!$name) { 
    die (
"Dónde vas? ¬¬"); 

Por cierto, si pones el código entre [P4P] y [/P4P] queda más bonito. (php en vez de p4p)

Última edición por JoniJnm; 17/07/2008 a las 18:38
  #3 (permalink)  
Antiguo 18/07/2008, 15:43
 
Fecha de Ingreso: febrero-2008
Ubicación: Madrid
Mensajes: 474
Antigüedad: 16 años, 9 meses
Puntos: 1
Respuesta: ¿Este código es seguro?

Ok muchas gracias. respecto a lo de p4p es que lo copié de un ejemplo que vi.
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 21:20.