Autor
|
Tema: Protejer página con php (Leído 7,021 veces)
|
Marciano_79
Desconectado
Mensajes: 36
|
Hola estimados… quiero pedir de vuestra ayuda, para poder darle seguridad a una página que tiene un panel de control… para esto he creado un formulario de inicio de sesión, en la cual todo me funciona muy bien (completamente testado) ingreso sin problemas … como así la sesión queda bien cerrada… el problema surge que se puede entrar a la página de admin por la URL saltándose el login solo escribiendo la ruta… me gustaría crear una función que no permita esto y que cuando se intente, este redirija a mi index donde tengo el formulario para iniciar sesión… la verdad no tengo idea de cómo se hace… he leído de todo pero aun no puedo entender cómo se realiza… favor si alguien puede echarme una mano… dejo mi códigos a usar. INDEX.PHP (en esta misma página tengo el formulario de ingreso) sec_session_start(); if(isset($_SESSION["username"])){ } { $error = ''; $sha1_pass = sha1($password); $consulta = "SELECT NOMBRE FROM usuario_admin WHERE EMAIL = '$email' AND PASSWORD = '$sha1_pass'"; $result=$cnx->query($consulta); $rows = $result->num_rows; if($rows > 0) { $row = $result->fetch_assoc(); $_SESSION['username'] = $row['NOMBRE']; $_SESSION['password'] = $row['PASSWORD']; } else { $error = "El nombre o contraseña son incorrectos"; } }
FUNCIONES.PHP function sec_session_start() { $session_admin_panel = 'username'; $secure = "SECURE"; // detiene javascript al acceso de la sesion id. $httponly = true; // fuerza la sesion al uso de cookies if (ini_set('session.use_only_cookies', 1) === FALSE) { header("Location: ../index.php"); } $cookieParams["path"], $cookieParams["domain"], $secure, $httponly); }
Estos son los archivos que manejo hasta el momento, pero como decía, necesito una función que proteja el acceso a la página ver.php y que obligué hacer login… como puedo hacer esto? Muy agradecido de antemano a quien me quiera ayudar.. gracias.!
|
|
|
En línea
|
|
|
|
engel lex
|
En cada sección de la web debes verificar si la sesión se inició apropiadamente, si no, header redirect + exit()
|
|
|
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.
|
|
|
Marciano_79
Desconectado
Mensajes: 36
|
Hola gracias por responder.. lo que me indicas lo comprendo pero nose como crear en si la funcion.. intento crear algo así pero se que no estoy ni cerca.. FUNCIONES.PHP function login_check($cnx) { if (isset($_SESSION['username'], $_SESSION['password']) == true) { }else { header("Location: index.php"); } }
y en la pagina VER.PHP if (login_check($cnx) == true) : ?> <p>Bienvenido <?php echo htmlentities($_SESSION['username']); ?>!</p> <?php else : ?> <p> <span class="error">Usted no esta autorizado para ver esta página.</span> Favor <a href="index.php">Use el registro</a>. </p> <?php endif; ?>
he lo que conseguido leyendo algunas cosas por internet.. pero no consigo lograrlo.. soy muy novato en esto..
|
|
|
En línea
|
|
|
|
engel lex
|
Como haces el logout? Probablemente no estés limpiando las variables
Por que no usas el metodo predefinidos de PHP para el manejo de sesiones?
|
|
|
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.
|
|
|
Marciano_79
Desconectado
Mensajes: 36
|
Dentro de VER.PHP llamo con un include aun archivo CABECERA.PHP donde tengo el botón cerrar sesión.. header("Location: ../index.php");
ahora sobre metodo predefinidos ni idea de eso amigo... Ahora crees que deba cambiar algo? la verdad estoy re perdido... saludos.!!
|
|
|
En línea
|
|
|
|
Marciano_79
Desconectado
Mensajes: 36
|
Bueno ahora logre hacer que la pagina no se ingrese por la url.. pero ahora no me reconoce el login.. no me deja ingresar por user ni pass.. que podrá ser?
|
|
|
En línea
|
|
|
|
engel lex
|
Session_destroy segun PHP.net dice (puedes hacer click en tu código arriba y te llevará ) session_destroy() destruye toda la información asociada con la sesión actual. .
Para destruir la sesión completamente, como desconectar al usuario, el id de sesión también debe ser destruido. Si se usa una cookie para propagar el id de sesión (comportamiento por defecto), entonces la cookie de sesión se debe borrar. setcookie() se puede usar para eso. Siempre debes leer la documentacion en caso de error
|
|
|
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.
|
|
|
Marciano_79
Desconectado
Mensajes: 36
|
si.. le he incluido setcookie(session_name(),'', $params["path"], $params["domain"], $params["secure"], $params["httponly"]);
al archivo logout.php... pero no entiendo porque ahora no puedo ingresar con mis datos de registro... busco el porque pero no veo porque no puedo ingresar.. no he tocado nada excepto la función para proteger la pagina que he creado... no entiendo realmente.. puedes darme una mano para ver que falla porfavor?
|
|
|
En línea
|
|
|
|
engel lex
|
Retorna todo los cambios y en cerrar session hacer un foreach a las valiables de session y las seteas a Null
|
|
|
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.
|
|
|
Marciano_79
Desconectado
Mensajes: 36
|
bueno ahí me matastes realmente.. ni idea de como hacer eso.. gracias igual por tu tiempo, veré que encuentro por google.. saludos!!
|
|
|
En línea
|
|
|
|
|
|