Foros del Web » Programando para Internet » PHP »

seguridad en sesiones PHP

Estas en el tema de seguridad en sesiones PHP en el foro de PHP en Foros del Web. HOla amigos. tengo un aplicativo desarrollado en php y se encuentra en un servidor web. El aplicativo maneja sesiones para el ingreso de usuarios registrados ...
  #1 (permalink)  
Antiguo 11/05/2011, 14:20
 
Fecha de Ingreso: enero-2010
Ubicación: Colombia
Mensajes: 238
Antigüedad: 14 años, 10 meses
Puntos: 2
seguridad en sesiones PHP

HOla amigos. tengo un aplicativo desarrollado en php y se encuentra en un servidor web. El aplicativo maneja sesiones para el ingreso de usuarios registrados pero tengo la siguiente duda:

Esta direccion URL es una direccion en donde solo se puede acceder estando logeado:

http://www.miaplicativophp.com/APLI/vecinos.php

Es decir que el fichero 'vecinos.php' es un fichero el cual el usuario puede acceder mientras que el usuario este logeado. Pero tengo un error de seguridad por que una vez haya cerrado la sesion y en otra ventana ingreso directamente con la URL http://www.miaplicativophp.com/APLI/vecinos.php y asi me deja ingresar.

Alguno sabe como mitigar este error en las sesiones PHP ?
  #2 (permalink)  
Antiguo 11/05/2011, 14:24
Avatar de jatg  
Fecha de Ingreso: abril-2011
Ubicación: caracas
Mensajes: 152
Antigüedad: 13 años, 7 meses
Puntos: 15
Respuesta: seguridad en sesiones PHP

muestranos el script para poder observar si tienes algun error en el?
__________________
www.josealexis.net
  #3 (permalink)  
Antiguo 11/05/2011, 14:29
Avatar de jatg  
Fecha de Ingreso: abril-2011
Ubicación: caracas
Mensajes: 152
Antigüedad: 13 años, 7 meses
Puntos: 15
Respuesta: seguridad en sesiones PHP

puedes hacer algo como esto:

Cita:
<?php
require_once('db.php');
include('functions.php');

if(isset($_POST['Login']))
{
if($_POST['username']!='' && $_POST['password']!='')
{
//Use the input username and password and check against 'users' table
$query = mysql_query('SELECT ID, Username, Active FROM users WHERE Username = "'.mysql_real_escape_string($_POST['username']).'" AND Password = "'.mysql_real_escape_string(md5($_POST['password'])).'"');

if(mysql_num_rows($query) == 1)
{
$row = mysql_fetch_assoc($query);
if($row['Active'] == 1)
{
session_start();
$_SESSION['user_id'] = $row['ID'];
$_SESSION['logged_in'] = TRUE;
header("Location: members.php");
}
else {
$error = 'Your membership was not activated. Please open the email that we sent and click on the activation link';
}
}
else {
$error = 'Login failed !';
}
}
else {
$error = 'Please user both your username and password to access your account';
}
}
?>

<?php if(isset($error)){ echo "&error=". $error;}?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<input type="text" id="username" name="username" size="32" value="" />
<input type="password" id="password" name="password" size="32" value="" />
<input type="submit" name="Login" value="Login" />
</form>
__________________
www.josealexis.net
  #4 (permalink)  
Antiguo 11/05/2011, 14:30
Avatar de _-ZeuS-_  
Fecha de Ingreso: junio-2007
Ubicación: Quito, Ecuador! ;)
Mensajes: 100
Antigüedad: 17 años, 5 meses
Puntos: 7
Respuesta: seguridad en sesiones PHP

en realidad no es un error lo que pasa es que no haces el session_destroy() respectivo para dejar cerrada la sessión. cuando cierras la ventana deberías poner algo en el onunload de la etiqueta body que te mande a cerrar la sesión, por ejemplo madar a cerrar mediante ajax la sessión o abrir una nueva ventana para que puedas poner el session_destroy()

Adicional a eso puedes configurar tú servidor para que lo cierre con más rapidez por ejemplo ahora lo cierras en 10mins lo podrías hacer para cerrar en 5.

Ese es un problema que hay en casi todos los lenguajes pero como te comento no es un error de seguridad de PHP.
  #5 (permalink)  
Antiguo 11/05/2011, 14:31
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 14 años, 1 mes
Puntos: 511
Respuesta: seguridad en sesiones PHP

Cita:
Iniciado por nelson12345 Ver Mensaje
Alguno sabe como mitigar este error en las sesiones PHP ?
Podrías postear tu codigo en el cuar finalizas la sesion, ya que no somos adivinos del codigo que utilizas, además para una mejor ayuda es mejor que pongas el codigo

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #6 (permalink)  
Antiguo 11/05/2011, 14:37
(Desactivado)
 
Fecha de Ingreso: abril-2011
Mensajes: 153
Antigüedad: 13 años, 6 meses
Puntos: 236
Respuesta: seguridad en sesiones PHP

Hola que tal,
Es muy cierto lo que dice _-ZeuS-_, si no destruyes la sesión o a menos una variable de sesión que permita el acceso, el problema seguirá.
Puedes usar session_destroy() para acabar con todo rastro de sesión o usar unset($_SESSION[ejemplo]) para borrar una parte de la sesión.
Saludos.

Atención: Para seguir ayudandote, agradece mis mensajes para acceder désde notificaciónes ó enviame un MP.

Última edición por angelfcm; 12/05/2011 a las 18:28

Etiquetas: seguridad, sesiones
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 14:08.