Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Otros Temas » HTML » Problemas de seguridad Responder al tema
Nuevo tema


Página 1 de 1  [ 2 mensajes ] 
 
Nota 2007-08-31 05:11 @257

Perlero Nuevo
Registrado: 2007-05-14 06:23 @307
Mensajes: 87
Problemas de seguridad
Hola, estoy haciendo un programa en PHP y JavaScript donde los usuarios tienen que autentificarse para poder entrar.

La seguridad la implemento de la siguiente manera:

- Tengo un script llamado 'autentificarse.php' en el que se le pide al usuario su login y contraseña.
- A continuación en un script llamado 'control.php' compruebo si ese login y esa contraseña están incluidas en la BD y:

Syntax: [ Download ] [ Hide ]
Using php Syntax Highlighting
        session_start();

        $_SESSION['autentificado'] = "SI";
   
        header ("Location: <!-- m --><a class="postlink" href="http://localhost/miBD/index.php?login=">http://localhost/miBD/index.php?login=</a><!-- m -->".$fila['login']."");
               
}else {
    //si no existe le mando otra vez a la portada
        header("Location: autentificarse.php?errorusuario=si");
}


Abro la sesión (session_start()) y guardo una variable en la sesión 'autentificado', que servirá como referencia más adelante para ver si un usuario está autentificado o no. Si lo está lo mando al index, pero si no lo está vuelve a la página 'autentificarse.php'.

- Tengo un fichero llamado 'seguridad.php' que incluyo en todos los script que no quiero que puedan ser abiertos en el navegador poniendo 'http://localhost/miBD/miScript.php?id=1'. El fichero seguridad tiene el siguiente código:
Syntax: [ Download ] [ Hide ]
Using php Syntax Highlighting
<?
session_start();

if ($_SESSION['autentificado'] != "SI") {
    //si no existe, envio a la página de autentificacion
    header("Location: autentificacion.php");
    //ademas salgo de este script
    exit();
}
?>

pero probando cosas me pasa una cosa curiosa, si autentifico a un usuario en el navegador mozilla y abro otra pestaña u otra ventana en ese mismo navegador ya puedo poner 'http://localhost/miBD/miScript.php?id=1' las veces que quiera que consigo abrir el script, aunque sea con otro usuario al que he autentificado, cosa que no creo que sea muy segura.

En cambio si abro por ejemplo el explorer y pongo lo mismo 'http://localhost/miBD/miScript.php?id=1', no me lo abre, sino me aparece el siguiente warning:

Código:
Warning: Cannot modify header information - headers already sent by (output started at C:\server\web\miBD\index.php:10) in C:\server\web\miBD\Seguridad\seguridad.php on line 6


¿Por qué me pasa esto? ¿Cómo puedo modificar la implementación de seguridad en mi programa para que no pasen estas cosas? ¿Qué me aconsejáis que use como seguridad teniendo en cuenta que el programa se usará en una intranet?

Muchas gracias.


Nota 2008-06-22 19:06 @837

Perlero Nuevo
Registrado: 2008-06-22 18:35 @816
Mensajes: 2
Hola,

Si inicias sesión y autentificas un usuario, este podrá acceder a la página protegida (lógicamente) aunque abra una ventana nueva.

La sesión termina al cerrar por completo el navegador.

Por otra parte, lo que te ocurre con IE, no sé qué más tienes en tu código, pero normalmente ese error ocurre al imprimir texto antes de iniciar sesión (session_start()) o utilizar header().


Responder al tema  [ 2 mensajes ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO