Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: c0nej0 en 30 Diciembre 2006, 19:12 pm



Título: seguridad de sesiones en php
Publicado por: c0nej0 en 30 Diciembre 2006, 19:12 pm
Hola a todos.....qisiera porfavor  informacion sobre temas de seguridad de sesiones en PHP, osea la forma en q puedo hacer mas segura una sesion de usuario.......en una aplicacion q hic me di con la desdichada sorpresa q habia ingresado gente sin pasar el login , use el siguiente controlador de sesion pero claro no es suficiente:

Código:
<?php
session_start();
if($_SESSION['usuario']!='permitido'){
   session_destroy();
   @header('location:index.php');}
   ?>   
 

ese controlador esta para las paginas a las q solo los usuarios puedn acceder previo logeo......lo q ocurre es q la pagina q programe tenia una sección de examens y en cada pagina salia el nombre del usuario...."Bienvenido Juan Perez has iniciado....etc" , y cuando el usuario daba su examen c guardaban sus nombres, contraseña, nota, fecha....pero habia registros d notas sin nombres ni contraseñas, solo la nota y la fecha como si lo hubiera dado un fantasma.....use el sgte script para validar la sesion:
Código:
<?php
include("conexionBD.php");
conectarse();//funcion q me concta a la BD
//***********************
$codUsu=$_POST['codigo'];
$dni=$_POST['dni'];
$nivel=$_POST['nivel'];
session_start();
$sql="select * from usuarios where clave='".$codUsu."' and dni='".$dni."' and nivel='".$nivel."'";
$rs=mysql_query($sql);
@$row=mysql_num_rows($rs);
if($row==1)// es dcir q existe tal registro
{ $_SESSION['usuario']='permitido';

@header('location:menu_usu.php');
$_SESSION['apellidos'] = mysql_result($rs,0,2);
$_SESSION['nombres'] = mysql_result($rs,0,3);
$_SESSION['nivel'] =$nivel;
$_SESSION['dni'] =$dni;
$_SESSION['codUsu'] =$codUsu;

$_SESSION['hora']=date('H:i');

}
else { session_destroy();

@header('location:loginUsu.php');
}

?>

por favor q otras herramientas puedo usar para q la sesion sea segura y no vulnerable

Les agradeceria mucho su ayuda


Título: Re: seguridad de sesiones en php
Publicado por: Hans el Topo en 30 Diciembre 2006, 19:35 pm
por de pronto evitar la inyección sql tan gorda que te pueden hacer ya que recibir por POST no copruebas los datos.
Create una funcioncita o pasale los magic_quotes para comprobar los datos que te llegan


con poner % o * mismamente te la meten doblada


Título: Re: seguridad de sesiones en php
Publicado por: c0nej0 en 30 Diciembre 2006, 20:08 pm
hmm suena interesante.....pero algun ejemplo ^^' ...osea pueden vulnerarme poniendo  % o * en los campos....como.?.al principio , al final........gracias x la respuesta...


Título: Re: seguridad de sesiones en php
Publicado por: Hans el Topo en 30 Diciembre 2006, 23:03 pm

veamos...xD

si envian los campos con valores...

$codUsu=%%
$dni=%%
$nivel=%%

o algun campo del que solo sepan que existe un dato sin saber el resto y haciendo combinaciones podría salir...

no le dedico más tiempo pero seguro que la comilla final se podría manipular para añadir un limit 1 al campo nivel xD

como adivinar los campos y demás?
enviando consultas erroneas y mirar si lanza algun error xD