Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => 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:

<?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:

<?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