elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  ¿Cómo mantener una sesión en PHP?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Cómo mantener una sesión en PHP?  (Leído 4,455 veces)
Kaxperday


Desconectado Desconectado

Mensajes: 702


The man in the Middle


Ver Perfil WWW
¿Cómo mantener una sesión en PHP?
« en: 20 Marzo 2016, 04:18 am »

Buenas noches caballeros, resulta que tengo un servidor PHP y quiero tener usuarios que sean capaces de registrarse e iniciar sesión, para mantener la sesión de cada uno.

El problema es que no se como funciona lo de las cookies para mantener sesión, lo que quiero es iniciar sesión con un cliente y que pasado un rato caduque la cookie restringiendo de nuevo el acceso.
Y que nadie sea capaz de acceder a ese contenido más que el cliente que tenga esas cookies.

¿que debería de hacer en PHP para hacer esto posible?.

Código, ¿cómo sería?, y ¿qué es lo más recomendable?.

Como adicional, dejo caer cual es la mejor manera de guardar los logins de los usuarios registrados Y saber si hay formas de detectar archivos en una página que tiene index vacío, me refiero a que si por ejemplo tengo un index.html vacio y en ese directorio tengo un archivo llamado 1091y30r9u9efum92uf901u90r1un3r.nada si ese archivo podría ser detectado por alguna técnica por un atacante o el atacante para encontrarlo tendría que ir metiendo random urls hasta encontrarlo.

Un saludo y mcuhas gracias socios.


En línea

Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: ¿Cómo mantener una sesión en PHP?
« Respuesta #1 en: 20 Marzo 2016, 07:33 am »

sobre la sesion y cookie

la sesion de php se mantiene con una cookie bajo un valor (modificable, el default, creo que es phssid) cuando se inicia sesión se guarda un sha2 al azar allí y se crea una entrada en la ram del servidor asociando esto... el peligro reside en que si un atacante roba este numero, habrá secuestrado la sesion... sin embargo esto es un metodo que al sol de hoy se ha estudiado y defendido bien... es cosa que busques tecnicas (brwoser fingerprint, ip, jscript local storage, etc)

sobre el tiempo de vida de las cookies, puedes asegurarlo por 2 caminos, el del cliente (le dices a su navegador que la cookie solo vive hasta x hora o hasta cerrar el navegador, pero este metodo es saltable) o el del servidor, donde uno de los valores que almacenas es el ultimo acceso, si entre el ultimo acceso y ahorita ha pasado mucho tiempo, al intentar entrar simplemente la sesion se destruye

estos en general son ejemplos basicos de php, te recomiendo leerte un tutorial y en los primeros capitulos ya verás sobre sesiones

sobre tu segunda pregunta...
para lo que hablas existen las bases de datos, simplemente anotas allí todos los nuevos accesos y listo... sobre hacer un archivo de texto (a lo bruto, porque es incluso más complicado) y almacenas allí todo, puedes crear una exclusion en el htaccess para que cualquier archivo que quieras bi oueda ser accedido desde afuera... esto es más complejo e innecesario... pero si te lees un tutorial medianamente avanzado, lo conseguirás


mi recomendacion... has un tutorial... hay uno bastante simple aunque viejito que debería aportarte todo lo que buscas

saludos!


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
gAb1


Desconectado Desconectado

Mensajes: 731


Ver Perfil
Re: ¿Cómo mantener una sesión en PHP?
« Respuesta #2 en: 25 Marzo 2016, 04:02 am »

Para conseguir lo que quieres tendrás que crear una función y ejecutarla al principio en el index.php, en lugar de simplemente llamar session_start().

Lo primero que tienes que hacer es obtener los parametros de la cookie de la sesión actual y guardarlos en una variable, para crear la cookie con tus parametros. Para esto puedes buscar en el manual php "session_get_cookie_params" y "session_set_cookie_params".

Segundo le das el nombre que quieras y la empiezas.

Ahora vienen las comprobaciones, aqui es donde eliges cada cuanto renovar la sesión y el tiempo de inactividad máximo, lo recomendado es renovarla cada 30 minutos y expirarla a los 5 minutos de inactividad. Así cuando se recargue la página (o se siga un link) se cierre sesión, y por lo tanto habrá que identificarse de nuevo (se redirige al login, al ser una página solo para usuarios registrados).

Me gustaría que le dieras una oportunidad y intentaras crear tu mismo la función. Leete el manual de php para saber como hacer lo que quieres o cualquier otra guia que encuentres. Muestranos lo que has podido crear y si tienes dificultad te paso la función que uso yo en mi framework (el proceso es muy sencillo, una vez leido  ;D).
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como mantener el tamaño
Multimedia
neomorfeo 1 1,724 Último mensaje 21 Marzo 2004, 17:59 pm
por Songoku
MANTENER SESION ABIERTA EN PHP.
PHP
podenko 7 6,626 Último mensaje 18 Febrero 2014, 14:13 pm
por ~ Yoya ~
¿Cómo mantener tu impresora en buen estado?
Noticias
wolfbcn 1 1,346 Último mensaje 22 Septiembre 2016, 04:23 am
por dato000
¿Como mantener en memoria datos de sesion en aplicacion de escritorio con java?
Java
miltonprogramador 2 3,696 Último mensaje 16 Diciembre 2016, 01:49 am
por miltonprogramador
mantener sesión iniciada en web utilizando firebase
Bases de Datos
diegozpeitia 6 5,823 Último mensaje 9 Marzo 2018, 20:35 pm
por diegozpeitia
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines