Sab Ene 19, 2008 11:10 am
|
 |
marcosss
Perlero Nuevo

|
Registrado: 14 May 2007
Mensajes: 87
|
|
| Problema de seguridad |
|
|
Hola, estoy realizando una aplicación web en PHP para la gestión de un centro escolar que en un principio iba a ser para una Intranet, pero que se ha decidido sacar a Internet.
Como iba a ser para una Intranet la verdad es que creo que la seguridad de la aplicación es un poco baja. Pido por favor me aconsejéis si está bien este nivel de seguridad o es poco y posibles alternativas. Os cuento, en todos los scripts, al principio hay una llamada a un script llamado 'seguridad.php' que contiene:
| php: | <?
session_start();
if (($_SESSION['autentificado'] != "SI") || ($_SESSION['loginActivo'] != $_SESSION['loginURL'])) {
//si no existe, envio a la página de autentificacion
// header("Location: autentificacion.php");
echo'<script language=Javascript> location.href="http://Autentificacion/autentificacion.php"; </script>';
//ademas salgo de este script
exit();
}
?>
|
En 'seguridad.php' lo que hago es controlar si el login que llega está autenticado y si es el mismo que tiene activa la sesión en el navegador, (si está autenticado lo compruebo al principio, al conectarse el usuario a la base de datos con el siguiente script):
| php: | <?
//Sentencia SQL para buscar un usuario con esos datos
$login= $_POST["login"];
$password= md5($_POST["password"]);
$sql = "SELECT * FROM usuarios WHERE ((login='". $login. "') && (password='". $password. "'))";
$result = mysql_query($sql, $GLOBALS["miConexion"]) or die(mysql_error());
//vemos si el usuario y contraseña es váildo
//si la ejecución de la sentencia SQL nos da algún resultado
//es que si que existe esa combinación usuario/contraseña
if (mysql_num_rows($result)!= 0){
//usuario y contraseña válidos
//defino una sesion y guardo datos
session_start();
$fila = mysql_fetch_assoc($result);
$_SESSION['autentificado'] = "SI";
$_SESSION['loginActivo'] = $login;
header ("Location: http://index.php?login=". $fila['login']. "");
}else {
//si no existe le mando otra vez a la portada
header("Location: autentificacion.php?errorusuario=si");
}
?> |
Y esto es todo lo que hago en nivel de seguridad en mi aplicación. Como os dije antes quisiera saber si está bien o es preciso tener más seguridad y posibles alternativas dado que soy nuevo en esto.
Muchas gracias |
|
|
|

Vie Feb 29, 2008 4:27 pm
|
 |
danimera
Perlero Adicto

|
Registrado: 23 Jun 2005
Mensajes: 239
Ubicación: Colombia
|
|
|
|
|
Oiga, qué script tan poco seguro.
Pero bueno, no importa, jeje, a menos que todos los demás archivos validen esa variable sección de pronto. |
|
Sab Mar 01, 2008 11:10 pm
|
 |
Jenda
Perlero Frecuente

|
Registrado: 29 Oct 2007
Mensajes: 106
Ubicación: Praga, Republica Checa
|
|
|
|
|
marcosss, ¿qué ocurre si pruebas a autentificarte con algún login como "d'Artagnan"?
La seguridad de tu aplicación no está en el código que autentica a tus usuarios. Es en todo el código, especialmente en lo que trabaja con los datos enviados por los usuarios. ¿Estás seguro de que solo aceptas datos sensibles? ¿Que nada que te mandan puede ser ejecutado como un SQL o PHP? ¿Que nadie puede enviarte algún código en JavaScript que va a ser ejecutado en el browser de otros usuarios? |
|
Powered by phpBB © 2001, 2005 phpBB Group
|