Foros del Web » Programando para Internet » PHP »

Cómo crear un login y zonas privadas con PHP

Estas en el tema de Cómo crear un login y zonas privadas con PHP en el foro de PHP en Foros del Web. Una pregunta genérica. Me pregunto que método es mejor y más seguro para que usuarios que ya han hecho login, puedan navegar en zonas privadas ...
  #1 (permalink)  
Antiguo 12/01/2017, 02:42
 
Fecha de Ingreso: octubre-2010
Mensajes: 31
Antigüedad: 9 años, 3 meses
Puntos: 1
Cómo crear un login y zonas privadas con PHP

Una pregunta genérica.
Me pregunto que método es mejor y más seguro para que usuarios que ya han hecho login, puedan navegar en zonas privadas de mi Web.

Supongamos que alguien ingresa su nombre y contraseña, y la base de datos devuelve que es correcto. A partir de aquí deberiamos:

1- Darle una cookie?
setcookie('username', 'Pepito', time()+60*60*24*365, '/');

2 -Crear una sesion?
session_start();
$_SESSION['usuario']='Pepito' ;

3-Controlar la sesion en la base de datos?
Creando una tabla "user_sessions" que controle la última entrada de un usuario en la página.

Dar una cookie me crearia problema de seguridad si navega desde un ordenador publico (o si su navegador no acepta cookies). Crear una sesión parece lo más lógico (aunque creo que las sesiones tambien usan cookies?). Controlar las sesiones con la base de datos, hace trabajar a la base de datos y no le veo la utilidad.

¿Alguien me puede explicar algo sobre el tema?
Tambien si algo algo que debería saber para no comprometer la seguridad.

Un saludo, Gracias,

Última edición por wanamingo2; 12/01/2017 a las 02:46 Razón: mejorar la explicacion
  #2 (permalink)  
Antiguo 12/01/2017, 08:04
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.034
Antigüedad: 8 años, 10 meses
Puntos: 150
Respuesta: Cómo crear un login y zonas privadas con PHP

La principal diferencia entre sesion y cookie es que la primera se borra todo su acceso o expirá completamente cuando el usuario cierra el navegador, la segunda permite almacenar información local permitiendo la entrada a la web(zonas privadas) sin importar que cierre el navegador, hasta que se cumpla el tiempo establecido(si existe) o se borre la cookie que contiene la información que permite accesar a las zonas privadas.

La practica comun, es que almacenes en la base de datos que nivel de usuario tiene cada quien, 0 y 1(por ejemplo) donde 0 es el usuario comun y 1 el usuario con derechos para ver zonas privadas. al momento del login guardas en una variable $_SESSION el nivel y en cada documento privado haces una comprobación sencilla:

Código PHP:
Ver original
  1. if($nivel_usuario != 1){ //Para ser visualizada necesita nivel 1
  2. echo "No puedes ver esta pagina";
  3. //codigo de redirección, etc
  4. exit();
  5. }

Guardarlo en la base de datos?... de mi parte lo veo innecesario a no ser que quieras controlar tiempo de sessión almacenando el tiempo de entrada, sumando X cantidad de tiempo y haciendo la comprobación cada minuto o 5mins, esto implicaria renovación de tiempo etc.. gasto de recursos que a no ser que sea estrictamente necesario, no veo el porque....
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #3 (permalink)  
Antiguo 12/01/2017, 09:10
 
Fecha de Ingreso: octubre-2010
Mensajes: 31
Antigüedad: 9 años, 3 meses
Puntos: 1
Respuesta: Cómo crear un login y zonas privadas con PHP

Gracias por la respuesta.

Si en lugar de usar la base de datos, utilizo solo la variable de sesion, tambien deberia funcionar... verdad?


Código PHP:
Ver original
  1. if($_SESSION['usuario']== '' ;){ //No existe la variable de sesion
  2.     echo "Tienes que hacer login para poder ver esta pagina";
  3.     //codigo de redirección, etc
  4.     exit();
  5.     }

(Yo siempre he utilizado jommla y worlpress, y tenia el login masticadito, por eso tengo mucho miedo de la fortaleza de estos metodos).

Alguien tiene algun consejo en cuanto a la fortaleza, vulnerabilidad y la seguridad, haciendo un login de este tipo?
  #4 (permalink)  
Antiguo 12/01/2017, 09:21
 
Fecha de Ingreso: noviembre-2015
Mensajes: 230
Antigüedad: 4 años, 2 meses
Puntos: 86
Respuesta: Cómo crear un login y zonas privadas con PHP

Si conoces sus ip, puedes dar o negar acceso a archivos o directorios a ciertas ip con htacess http://developando.com/blog/consejos...ar-en-htaccess
  #5 (permalink)  
Antiguo 14/01/2017, 05:32
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 9 años, 3 meses
Puntos: 123
Respuesta: Cómo crear un login y zonas privadas con PHP

Quizás esto te venga bien seguridad de las sesiones php
__________________
Unset($vida['malRollo']);
  #6 (permalink)  
Antiguo 14/01/2017, 07:33
Avatar de AngelKrak  
Fecha de Ingreso: noviembre-2014
Mensajes: 917
Antigüedad: 5 años, 2 meses
Puntos: 91
Respuesta: Cómo crear un login y zonas privadas con PHP

yo acabe de hacer este sistema de login y register hace poco con inicio rapido tipo facebook


Es este el sistema



aun que ya hicieron 2 diseños para ese sistema los cuales son los siguientes

Este es el mas reciente


http://www.heroesdelaweb.com/threads...register.6163/

y este fue el primero despues del original

http://www.heroesdelaweb.com/threads...vascript.6161/

Etiquetas: login, navegacion, privada, sesiones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:05.