norfipc.com
Códigos   Mapa del sitio   Informatica
NorfiPC » Códigos » Proteger una página web

Como proteger una página web con contraseña con PHP


Actualizado: 17 de noviembre del 2022
Por: Norfi Carrodeguas
Códigos para crear una página totalmente protegida y segura. Bloquear e impedir el acceso usando un password en MD5. Proteger formularios de la inyección de código SQL o XSS (cross-site scripting)
Como proteger una página web con contraseña con PHP
En ciertas ocasiones necesitamos tener una página en nuestro servidor web protegida, a la que solo tengamos acceso nosotros u otra personas especifica.
Es necesario si en ella almacenamos información personal o formularios que necesitamos tener a salvo de la inyección de código SQL o XSS (cross-site scripting)
La mejor opción es protegerla con una contraseña, de esa forma podemos impedir que cualquiera pueda acceder a su contenido.
Es algo sencillo si creamos esta página en PHP.
PHP es un lenguaje que funciona del lado del servidor, por lo que es imposible conocer el código desde el navegador, aunque usemos la popular función de "Ver el código fuente".


Códigos para una página de internet protegida con contraseña


Hay varias opciones para crear una página de esta forma, compartimos tres formas de hacerlo:
1- En el primer código que mostramos se una contraseña normal.
2- En el segundo código se usa una contraseña encriptada en MD5.
3- En el tercer código además de la contraseña encriptada es posible crear una sesión en el navegador y cerrarla al terminar.

Página protegida con contraseña sencilla


El primer código es el más sencillo, solo se necesita copiarlo, pegarlo en un documento de texto y guardar el archivo con la extensión PHP.
A continuación sustituir la contraseña que en este ejemplo es: 123456, por una lógicamente más segura.
En el área de Contenido protegido, se puede insertar texto o código HTML.
Solo se mostrara si se inserta la contraseña correcta.
Finalmente subir el archivo al servidor web.
<?php 
$password = "123456";
if ($_POST['password'] != $password) { 
?>
<h2>Logueate</h2>
<form name="form" method="post" action="">
<input type="password" name="password"><br>
<input type="submit" value="Login"></form>
<?php 
}else{
?>
Contenido protegido
<?php 
} 
?>


Página protegida con contraseña encriptada en MD5


Usar una contraseña encriptada en MD5 es una opción mucho más segura ya que los caracteres están encriptados y es más difícil de violentar.
<?php 
$password = "e10adc3949ba59abbe56e057f20f883e";
if (md5($_POST['password']) != $password) { 
?>
<h2>Logueate</h2>
<form name="form" method="post" action="">
<input type="password" name="password"><br>
<input type="submit" value="Login"></form>
<?php 
}else{
?>
Contenido protegido
<?php 
} 
?>


¿Qué es MD5?

MD5 es un algoritmo para encriptar y desencriptar texto usando PHP.
Burlar o forzar una contraseña ecriptada de esta forma es casi imposible.

¿Cómo encriptar texto en MD5?

Para encriptar texto o desencriptarlo podemos usar PHP.
Es algo sencillo, para eso previamente crea un archivo con el siguiente código y súbelo al servidor.
También puede hacerse si tienes Apache en un servidor local en la computadora.
<?php
//Encriptar password con MD5
$password = md5('SubiR189*');
echo "Password is:" .$password;
?>


Página con contraseña en MD5 y cierre de sesión


Abrir una sesión en el navegador puede ser muy útil cuando el contenido de la página requiere volverla a cargar y así evitamos tener que introducir la contraseña de nuevo en cada caso.
Al terminar solo necesitamos cerrar la sesión.
El siguiente código permite crear una página de esa forma.
<?php 
session_start();
$password = "e10adc3949ba59abbe56e057f20f883e";
if($_POST['password']){
    if(md5($_POST['password']) == $password){
        $_SESSION['password'] = "alm";
    }else{
        echo "<span style='color:red;font-weight:bold;'>La contraseña es incorrecta</span>";
    }}
if(!$_SESSION['password']){
?>
<h2>Logueate</h2>
Esta p&#225;gina tiene restringido el acceso<br>
<form style="margin:12px;" name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="password" name="password">
<input type="submit" name="Submit" value="Login!"></form>
<?php 
}else{
    if($_GET['desconectar']){
        session_destroy();
        exit("<span style='color:green;'>Haz sido desconectado correctamente</span>");
    }
?>	
Bienvenido, aquí puedes situar todo el contenido que debe ser protegido.<br>
Puede ser texto o código HTML.<br> 
Usa el enlace más abajo al terminar para cerrar la sesión.<br>
<a href="<?php echo $_SERVER['PHP_SELF']; ?>?desconectar=si">Desconectar</a>
<?php 	
}
?>
Mostramos los códigos en esta página usando el tema Sunburst de Prettify, un proyecto para resaltar el código en páginas web, disponible gratis en Github.
Lee más información detallada: Crear snipetts adaptables para mostrar código fuente en las páginas


Otras opciones para hacer más segura la pagina


Para reforzar aún más la seguridad podemos agregar otras opciones:
Restringir el número de caracteres en la entrada del formulario.
Para eso podemos agregar en la entrada de la contraseña las opción maxlength="n", donde n es el número de caracteres de nuestra contraseña.

Permitir el acceso a la página mediante HTTPS
Si nuestro servidor lo permite podemos obligar el acceso solo usando HTTPS el protocolo seguro.
Es fácil usando un archivo HTACCESS en el directorio donde se encuentra la página.


Proteger páginas y directorios con HTACCESS


Aunque los métodos anteriores son válidos, la forma más segura de proteger una página o todo un directorio es usando la directiva de Apache AuthConfig.
De esa forma se bloque al acceso hasta que no se ingrese un nombre de usuario y una contraseña.
También se puede usar para varios usuarios, cada una con su password diferente.
El único requisito es tener permiso para poder crear y subir un archivo .htaccess al servidor.
Lee toda la información detallada: Proteger un directorio del servidor con HTACCESS

Páginas relacionadas



Comparta esta página
Facebook
Twitter

Sígueme en las redes sociales


Norfipc en Facebook Norfipc en Twitter Canales RSS con las últimas publicaciones

 
Inicio | Mapa del sitio | Buscar | Sobre mí