Mantener sesión abierta en php

diegodelpiero

Lanero Reconocido
4 Jun 2009
195
Saludos, he desarrollado una pequeña pagina en php y html, la cual cuenta con un login normal, la cuestión es que cuando se deja mucho tiempo abierta la sesión y el usuario vuelve a la pagina ya esta desbloqueado, pero dentro de la pagina, peor no deja hacer nada, tiene que regresar nuevamente a la pagina de logueo para volver a loguearse, la idea es que se mantenga abierta la sesión permanente, pero no he logrado hacerlo, esta es la pagina de logueo:

PHP:
<?php session_start(); ?>
<?php
include('db.php');

//var_dump($_SESSION);// si no tiene variables te mostrar vacio o null caso contrario te hara un reporte
$usuario=$_POST['usuario'];
$contrase単a=$_POST['password'];

$_SESSION['usuario']=$usuario;



$consulta="SELECT* from usuarios where user= '$usuario' and pass= '$contrase単a'";
$resultado=mysqli_query($conexion,$consulta);

$filas=mysqli_num_rows($resultado);
$mostrar=mysqli_fetch_array($resultado);
$tipopermiso= $mostrar['tipo'];


if($filas){
    
    if ($tipopermiso==1){
        echo "<script>location.href='homeadmin.php?removido=true';</script>";
    }
    
    else{

           echo "<script>location.href='homeusuario.php?removido=true';</script>";
}
}else{
   echo "<script>alert('error');window.location='index.php'</script>";
  
}
mysqli_free_result($resultado);
mysqli_close($conexion);
?>

Agradezco mucho me puedan ayuda, gracias
 

Toooooony

Lanero Reconocido
13 Jun 2005
2,781
Pues creo que lo más sencillo es con cookies


La sesión de PHP solo funciona durante la visita a la página, para navegar entre varias páginas sin tener que loguearse en cada una. Una vez se abandona el sitio se pierde la sesión.

*Me imagino que es para una tarea? Si necesita una página que permanezca en internet es mejor que utilice wordpress o plataformas similares. Una página así en PHP queda demasiado expuesta.


Tony.
 

diegodelpiero

Lanero Reconocido
4 Jun 2009
195
es una pequeña mesa de ayuda que queremos usar dentro de la empresa donde trabajo, no es nada complejo, se loguean, enviar una solicitud y se tramita.
 

JohnDM

Lanero Reconocido
17 Ene 2009
302
Cookies.
Hace rato no veía código espagueti
 
  • LOL
Reacciones: samuro

Toooooony

Lanero Reconocido
13 Jun 2005
2,781
es una pequeña mesa de ayuda que queremos usar dentro de la empresa donde trabajo, no es nada complejo, se loguean, enviar una solicitud y se tramita.

Si se queda en "intranet" de pronto, pero si tiene acceso externo. Lo v10l4n en cuestión de horas, le llenan de spam el hosting y hasta más. (Y lo peor, no es ni un hacker, es el bot de algún aprendiz de hacker 🥲)

Para empezar parece ser que está usando la ñ y cómo ve, se le convierte en 単. Eso puede que sirva localmente pero podría dar problemas en el hosting.

Segundo, no veo que esté sanitizando el contenido de usuario ni contraseña.

Con eso le hacen la más vieja del libro 1=1 ... SQL injection

Tercero, veo que va a guardar la contraseña tal cual plaintext, monumental error.

a. Obviamente alguien obtiene acceso a ese archivo e inmediatamente accede a las contraseñas de todos los usuarios​
b. A la gente le gusta reusar las contraseñas y expone otras cuentas "más serias" así es cómo terminan hackeados hasta en el banco y "la culpa es del banco".​

Lo mínimo que se hace es encriptar la contraseña (lo típico solía ser sha256, ahora no es seguro) Ese hash es el que se guarda, no la contraseña. Cuando compara, toma la contraseña del input, produce el hash y hace la consulta con el hash no con la contraseña directamente.

Es un proceso simple no tiene mucho misterio. Solo unos pasos extra.

Pero vuelvo y le sugiero, con wordpress todo eso sale en par de días siguiendo tutoriales y es más fácil de mantener, actualizar y mejorar, si se quiere.


Tony.
 
  • Me gusta
Reacciones: samuro

diegodelpiero

Lanero Reconocido
4 Jun 2009
195
Si se queda en "intranet" de pronto, pero si tiene acceso externo. Lo v10l4n en cuestión de horas, le llenan de spam el hosting y hasta más. (Y lo peor, no es ni un hacker, es el bot de algún aprendiz de hacker 🥲)

Para empezar parece ser que está usando la ñ y cómo ve, se le convierte en 単. Eso puede que sirva localmente pero podría dar problemas en el hosting.

Segundo, no veo que esté sanitizando el contenido de usuario ni contraseña.

Con eso le hacen la más vieja del libro 1=1 ... SQL injection

Tercero, veo que va a guardar la contraseña tal cual plaintext, monumental error.

a. Obviamente alguien obtiene acceso a ese archivo e inmediatamente accede a las contraseñas de todos los usuarios​
b. A la gente le gusta reusar las contraseñas y expone otras cuentas "más serias" así es cómo terminan hackeados hasta en el banco y "la culpa es del banco".​

Lo mínimo que se hace es encriptar la contraseña (lo típico solía ser sha256, ahora no es seguro) Ese hash es el que se guarda, no la contraseña. Cuando compara, toma la contraseña del input, produce el hash y hace la consulta con el hash no con la contraseña directamente.

Es un proceso simple no tiene mucho misterio. Solo unos pasos extra.

Pero vuelvo y le sugiero, con wordpress todo eso sale en par de días siguiendo tutoriales y es más fácil de mantener, actualizar y mejorar, si se quiere.


Tony.
Muchas gracias por tus comentarios, la verdad apenas estoy aprendiendo, y logre armar la pagina a punta de videos de youtube..
 

Toooooony

Lanero Reconocido
13 Jun 2005
2,781
Muchas gracias por tus comentarios, la verdad apenas estoy aprendiendo, y logre armar la pagina a punta de videos de youtube..

Por eso le comenté cómo tarea está bien. Para aprender también. Pero de ahí en adelante es complicado mantener una aplicación propia programada desde cero. O bien se utilizan frameworks o se usan librerías que se encargan del login, del CRUD (create, read, update, delete) a la base de datos. etc.

Pero bueno, hagale y nos cuenta cómo le va.


Tony.
 

dasc

Lanero Reconocido
12 Jun 2020
188
Lanero le recomiendo que utilice Laravel (es un framework de PHP para desarrollo web), trabajar con php así "a pie" se vuelve un enredo, demasiado rápido, una pesadilla.

 

diegodelpiero

Lanero Reconocido
4 Jun 2009
195
Listo seguiré sus consejos, me entra una duda, en ese orden de ideas si quisiera dedicarme a elaborar paginas web , cual seria le herramienta o la metodología ideal?
 

Toooooony

Lanero Reconocido
13 Jun 2005
2,781
Listo seguiré sus consejos, me entra una duda, en ese orden de ideas si quisiera dedicarme a elaborar paginas web , cual seria le herramienta o la metodología ideal?

Es una pregunta muy abierta. Equivalente a decir... me gusta la ingeniería ¿a cual me dedico?

Depende que quiere hacer. Sentido personal y económico. Si su "pasión" es por el lado de la programación/desarrollo web. O solo quiere "hacer páginas".

Yo insisto en wordpress, es una de las herramientas más fáciles de publicar una página en unas horas. Wordpress tiene muchas plantillas gratuitas que llegan a niveles casi-profesionales. Y no necesita programar nada, puro mouse y google/youtube.

Si el interés es más "serio", ya sería por el lado de Javascript, NODEJS, REACTJS, Angular es lo que se usa actualmente, la curva de aprendizaje con estos si es algo más empinada.

Con Wordpress también hay aprendizaje (PHP) si quiere hacer sus propios plugins, modificar los temas, cosas de ese estilo. (pero si no quiere programar ni meterse con código también es posible 100%).

Con Java... ya es un tema más corporativo. Y camino algo largo.

Por otro lado más reciente está flutter (de Google). Un solo código para cualquier dispositivo. El problema de arrancar con flutter es que muchos conceptos pueden ser más difíciles de comprender si no se han aprendido en lenguajes "tradicionales". Pero por otra parte "sale adelante" con una tecnología relativamente nueva.

Python, un lenguaje muy verstail y generalmente "de entrada". fácil de leer. simple pero con mucho potencial. Va uno busca y sale que Instagram, youtube, google todos fueron hechos en python.

De nuevo, todo depende de su objetivo.


Tony.
 

Los últimos temas