Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: basickdagger en 10 Mayo 2014, 00:39 am



Título: Seguridad en $session
Publicado por: basickdagger en 10 Mayo 2014, 00:39 am
Hola bueno esto trabajando en un sitio y tengo una duda...

tengo una table en mi BD llamada Usuarios..
la cual tengo con 4 campos...

id tipo usuario contraseña...

entonces a la hora de hacer mi login
tomo ciertos valores

Código
  1. if (mysql_num_rows($ejecutar_sql)!=0){
  2.  
  3. if($tipo=='admin'){
  4.  
  5. $_SESSION['usuario']=$usuario;
  6. $_SESSION['tipo']=$tipo;
  7. }
  8.                 if($tipo=='user'){
  9. $_SESSION['usuario']=$usuario;
  10. $_SESSION['tipo']=$tipo;
  11.                }
  12.                return true;
  13. } else {
  14. return false;
  15. }
  16.  
antes de este código comparo que  $usuario y $tipo existan antes  de ejecutar esta parte de código para iniciar cualquier session...

y ya en cada pagina comparo

$_SESSION['tipo']

y dependiendo de este muestro información...

que tan facil es robarse mi session?
es lo peor que puedo hacer?

alguna recomendación...


Saludos!



Título: Re: Seguridad en $session
Publicado por: engel lex en 10 Mayo 2014, 01:18 am
las sesiones de php originalmente son sumamente sensibles al robo

un ejemplo simple para explicar esto, inicia sesion en (ej) chrome a tu pagina, presiona f12 para abrir la consola de comandos escribe
Código
  1. document.cookie
esto se devolverá un valor como

Código:
PHPSESSID=ert9aj1m97cuns786sbu18l8d1

abre otro navegador (puede ser internet explorer por razones de prueba), en ie presionas f12 para abrir la consola, presionas donde dice "script" y abajo a la derecha escribes
Código
  1. document.cookie='PHPSESSID=ert9aj1m97cuns786sbu18l8d1'

al refrescar la pagina, verás que estás logeado! :P felicitaciones, acabas de aprender a robar una galleta! XD

para evitar esto puedes hacer lo siquiente

en las variables de $_SESSION agregas de las variables del servidor ($_SERVER)
REMOTE_ADDR
HTTP_USER_AGENT

con esas 3 las comparas siempre, esto aunque no es infinitamente infalible es bastante pesado de superar para muchos y requeriría el atacante estar en la misma lan para poder realizar un ataque

hay más metodos, pero los dejo a google para que los busques


Título: Re: Seguridad en $session
Publicado por: basickdagger en 10 Mayo 2014, 19:53 pm
muchas gracias sinceramente no tenia idea.. aunque tengo una duda.. al destruir un session se eliminan tambien la session de la cookie copiada vdd?

saludos.. voy a informarme más..


Título: Re: Seguridad en $session
Publicado por: engel lex en 10 Mayo 2014, 20:06 pm
si, si la sesión se destruye o se cambia de identificador (hay un comando para eso) la cookie copiada queda inútil