Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: chispita68 en 28 Julio 2010, 18:44 pm



Título: LOGIN EN PHP, CERRAR SESION
Publicado por: chispita68 en 28 Julio 2010, 18:44 pm
Soy nuevo en php y bases de datos mysql, estoy en un problemas, en una pagina para ingresar al sistemas al momento de cerrar sesion no se como evitar regresar a la pagina donde estan sus datos, y se reenvien de nuevo, asi como la session de msn donde quieres regresar y te redirecciona a su pag principal, espero su ayuda


Título: Re: LOGIN EN PHP, CERRAR SESION
Publicado por: Zazú en 28 Julio 2010, 19:08 pm
Es muy simple! :P

Mira...
logout.php
Código
  1. if(!isset($_SESSION[algo])){
  2. header("location:index.php");
  3. } else {
  4. header("location:index.php");
  5. }
  6. ?>

Eso comprueba primero que nada si existe la session algo si no existe lo manda al index, si existe destruye todas las sessiones y lo manda al index, ahi no se volverian a mandar los datos  ;)


Espero que te sirva!  ::)


Título: Re: LOGIN EN PHP, CERRAR SESION
Publicado por: jdc en 28 Julio 2010, 19:41 pm
Es buena la idea pero seria vulnerable a csrf...

Por ejemplo si te paso un link con un iframe a "tupagina.com/logout.php" se te cerraria la session al igual que si se ejecuta esa pagina desde una imagen en php xD creo que se podia quizas me estoy carrileando pero deberia funcionar...


Título: Re: LOGIN EN PHP, CERRAR SESION
Publicado por: Zazú en 28 Julio 2010, 19:47 pm
jaja tenes razón, igual así no lo uso yo le pase algo para que se guie un poco   :silbar:

Lo de la imagen..  ;D creo que no funcionaria, tendría que probar despues.

Suerte  ;)


Título: Re: LOGIN EN PHP, CERRAR SESION
Publicado por: jdc en 28 Julio 2010, 19:49 pm
Uffff....Deberias ver lo que hace WHK con una imagen xDDDDDDDD


Título: Re: LOGIN EN PHP, CERRAR SESION
Publicado por: jdc en 28 Julio 2010, 19:53 pm
¬¬ no preguntes por privado, lo mejor es tratar los temas en el foro ademas asi nos evitamos la sociabilizacion  >:D

Se me ocurre para arreglar el csrf (no lo he probado) en el login podrias ingresar un hash al azar y almacenarlo en la base de datos justo en ese momento e iniciar una session con ese hash y luego compararlo con el de tu db  :¬¬

Es mas sencillo de lo que parece solo entiendelo xD


Título: Re: LOGIN EN PHP, CERRAR SESION
Publicado por: chispita68 en 28 Julio 2010, 19:58 pm
No tendria caso que se genera la clave al azar, en la mayoria de los sistemas, uno escribe su propia contraseña,


Título: Re: LOGIN EN PHP, CERRAR SESION
Publicado por: jdc en 28 Julio 2010, 20:10 pm
Mira no lo voy a codear xD pero aqui tienes una idea

(login teorico)

Variables:

$numero_al_azar = rand(1,1999)
$usuario = chispita
$password = 1234
$hash_anti_csrf = md5($usuario,$numero_al_azar)

$hash_anti_csrf lo guardas en la db si el login es correcto y en una session o cookie, nada que ver con la contraseña.

(logout teorico)

existe la session de logueado?
   no = al index
   si, $hash_anti_csrf es igual al de el usuario?
      no = al index
      si, cierra session y manda al index


en la url de logout podrias recibir tu hash por get para que quedara algo como tupagina.com/logout.php?hash=234hj234h o que se yo


Título: Re: LOGIN EN PHP, CERRAR SESION
Publicado por: Zazú en 28 Julio 2010, 21:42 pm
jaja yo te lo codearia ya mismo, no me costaria pero estoy ocupado..

Lo que el dice es así...

Al crear la session de login, insertar en una tabla un hash con el usuario que logeo, al cerrar session que se envie por post o get el hash que generaste y si es correcto, que cierre la session en caso contrario no, si la borra que borre de la tabla tambien el hash y el usuario..


Perdon por repetir las palabras,estoy ocupado ahora te lo codeo :)
Responde aca, no te pienso responder un pm  >:D


Título: Re: LOGIN EN PHP, CERRAR SESION
Publicado por: braulio-- en 28 Julio 2010, 23:56 pm
Parece que no hayan creado un logout anti-CSRF jamás.

En el login se crea una variable en $_SESSION que se llame token, algo así:

Código
  1. /* Login succesful */
  2. $_SESSION['token'] = md5(sha1(rand(1,100000)); // Por ejemplo
  3.  
Luego, se pone esto como enlace al logout :

Código
  1. <a href="logout.php?token=<?php echo $_SESSION['token']; ?>">Logout </a>
  2.  

Y en logout.php

Código
  1. if ($_SESSION['token'] == $_GET['token'] )
  2. {
  3. }
  4.  

En mi opinión usar la base de datos no es necesario.


Título: Re: LOGIN EN PHP, CERRAR SESION
Publicado por: Zazú en 29 Julio 2010, 01:35 am
"Parece que no hayan creado un logout anti-CSRF jamás."


2-3 comentarios y ya podes deducir lo que hice o no, sos muy inteligente!  ;-)
En lo personal no le veo lo malo en usar bases de datos, aunque tu metodo sea igual de factible yo lo puedo hacer de otra manera  :silbar:


Título: Re: LOGIN EN PHP, CERRAR SESION
Publicado por: braulio-- en 29 Julio 2010, 11:53 am
"Parece que no hayan creado un logout anti-CSRF jamás."


2-3 comentarios y ya podes deducir lo que hice o no, sos muy inteligente!  ;-)
En lo personal no le veo lo malo en usar bases de datos, aunque tu metodo sea igual de factible yo lo puedo hacer de otra manera  :silbar:

Tranquilízate porque en ningún momento dije que no lo hubieras hecho así que no te pongas de esa forma. Dije que lo parece, y realmente lo parece (solo en mi opinión, no se en la del resto).

Lo malo de las bases de datos es que el método que yo uso es bastante más ligero y te ahorras 4 o 5 líneas de código.


Título: Re: LOGIN EN PHP, CERRAR SESION
Publicado por: Zazú en 29 Julio 2010, 19:20 pm
Primero que nada... POR FAVOR, no digas algo que yo no dije, gracias.
Segundo, ¿"Tranquilízate"?   jajaja ;-)     estaba y estoy muy tranquilo, ademas de que no creo que tengas la autoridad para tranquilizarme  ;)
Tercero,
Yo en NINGUN momento dije que vos hayas dicho que yo nunca hice un sistema anti-CSRF, solamente dije que con 2-3 comentarios ya podias deducir lo que hice o no (en este caso el logout anti-CSRF) y eso es EXACTAMENTE lo que vos hiciste, ¿o no?.
 
Citar
2-3 comentarios y ya podes deducir lo que hice o no, sos muy inteligente!

Citar
Dije que lo parece, y realmente lo parece (solo en mi opinión, no se en la del resto).

"El ignorante afirma. El sabio duda y reflexiona" dicen que es de Aristóteles, pero se aplica muy bien aca  :silbar:


Título: Re: LOGIN EN PHP, CERRAR SESION
Publicado por: braulio-- en 31 Julio 2010, 14:58 pm
Primero que nada... POR FAVOR, no digas algo que yo no dije, gracias.
Segundo, ¿"Tranquilízate"?   jajaja ;-)     estaba y estoy muy tranquilo, ademas de que no creo que tengas la autoridad para tranquilizarme  ;)
Tercero,
Yo en NINGUN momento dije que vos hayas dicho que yo nunca hice un sistema anti-CSRF, solamente dije que con 2-3 comentarios ya podias deducir lo que hice o no (en este caso el logout anti-CSRF) y eso es EXACTAMENTE lo que vos hiciste, ¿o no?.
 
Citar
2-3 comentarios y ya podes deducir lo que hice o no, sos muy inteligente!

Citar
Dije que lo parece, y realmente lo parece (solo en mi opinión, no se en la del resto).

"El ignorante afirma. El sabio duda y reflexiona" dicen que es de Aristóteles, pero se aplica muy bien aca  :silbar:

Muy bien, veo que tu ego es enorme , yo en ningún momento quise crear polemica.

Pues sí, deduje lo que habías hecho con 2 o 3 comentarios , no creo que haya ninguna ley que lo prohiba cierto?

Joder, debes de ser un crack, has citado una frase famosa  ;-) 

Veo que tu eres de los que no reflexionan, los sabios obviamente también afirman , pero lo hacen después de reflexionar así que veo que no has entendido la frase y te lo has tomado al pie de la letra.

Cada vez voy aprendiendo que los que menos idea tienen de un tema se dedican a citar frases famosas para tranquilizar su ego.



Título: Re: LOGIN EN PHP, CERRAR SESION
Publicado por: Zazú en 31 Julio 2010, 21:48 pm
Citar
así que veo que no has entendido la frase
2 cosas.
1. Vos no sabes si entendí o no la frase, estaria bueno que lo digas de otra manera.
2. Como sabes que vos sabes el verdadero significado de la frase?   me imagino que tendras bases para poder decír que significa solamente lo que vos pensas. Como sé que no te digo que la intolerancia no es buena.    :silbar:

Citar
Cada vez voy aprendiendo que los que menos idea tienen de un tema se dedican a citar frases famosas para tranquilizar su ego.
Citar
veo que tu ego es enorme

No hace falta que diga nada aca, lo dejo a tu criterio   ;)
 :silbar:


Suerte


Título: Re: LOGIN EN PHP, CERRAR SESION
Publicado por: braulio-- en 8 Agosto 2010, 13:58 pm
Citar
así que veo que no has entendido la frase
2 cosas.
1. Vos no sabes si entendí o no la frase, estaria bueno que lo digas de otra manera.
2. Como sabes que vos sabes el verdadero significado de la frase?   me imagino que tendras bases para poder decír que significa solamente lo que vos pensas. Como sé que no te digo que la intolerancia no es buena.    :silbar:

Citar
Cada vez voy aprendiendo que los que menos idea tienen de un tema se dedican a citar frases famosas para tranquilizar su ego.
Citar
veo que tu ego es enorme

No hace falta que diga nada aca, lo dejo a tu criterio   ;)
 :silbar:


Suerte

La frase quiere decir que el sabio no da nada por hecho, sino que primero lo piensa y le da vueltas y luego si no encuentra ningun inconveniente afirma. En mi opinión (y supongo que de otras personas) es eso lo que quiere decir la frase y no que el sabio nunca afirme como parece que entendiste. De cualquier manera y aunque creo que no te va a importar no te lo reprocho.

No tener ego no significa no poder decir que hay gente que sabe menos.

Siento haber respondido tan tarde, pero es que estoy de vacaciones y no puedo coger facilmente el ordenador.
 


Título: Re: LOGIN EN PHP, CERRAR SESION
Publicado por: #!drvy en 8 Agosto 2010, 14:31 pm
emmmmmmmm va, al tio ya le aveis dado la solucion.. y yo creo que eso lo podeis seguir por privados :)




Saludos


Título: Re: LOGIN EN PHP, CERRAR SESION
Publicado por: Debci en 8 Agosto 2010, 14:45 pm
Primero que nada... POR FAVOR, no digas algo que yo no dije, gracias.
Segundo, ¿"Tranquilízate"?   jajaja ;-)     estaba y estoy muy tranquilo, ademas de que no creo que tengas la autoridad para tranquilizarme  ;)
Tercero,
Yo en NINGUN momento dije que vos hayas dicho que yo nunca hice un sistema anti-CSRF, solamente dije que con 2-3 comentarios ya podias deducir lo que hice o no (en este caso el logout anti-CSRF) y eso es EXACTAMENTE lo que vos hiciste, ¿o no?.
 
Citar
2-3 comentarios y ya podes deducir lo que hice o no, sos muy inteligente!

Citar
Dije que lo parece, y realmente lo parece (solo en mi opinión, no se en la del resto).

"El ignorante afirma. El sabio duda y reflexiona" dicen que es de Aristóteles, pero se aplica muy bien aca  :silbar:

Eso es vanidad y lo demas es tonteria...

Saludos


Título: Re: LOGIN EN PHP, CERRAR SESION
Publicado por: Pazador en 8 Agosto 2010, 20:24 pm
Se empieza a calentar el tema.. quiero ver sangre, no los separen  :xD


Título: Re: LOGIN EN PHP, CERRAR SESION
Publicado por: chispita68 en 9 Agosto 2010, 18:02 pm
Oigan este tema quisiera que nos enfocaramos en el, pienso que este foro esta para discutir ideas sobre lo de programacion y demas y para publicar los logros de cada quien espero que comprendan, y su ayuda en este tema que publique


Título: Re: LOGIN EN PHP, CERRAR SESION
Publicado por: braulio-- en 16 Agosto 2010, 21:39 pm
Pido disculpas.


Título: Re: LOGIN EN PHP, CERRAR SESION
Publicado por: bigoton en 17 Agosto 2010, 21:08 pm
El token tambien en su momento es vulnerable, se que lograr unas seguridad al 100 % es imposible, ademas podrian validar las cabecerar para saber que es una peticion HTTP legitima


Título: Re: LOGIN EN PHP, CERRAR SESION
Publicado por: zinfinal en 22 Agosto 2010, 07:54 am
por si las moscas:

unset($_SESSION['session']);