Cómo construir una página web protegida por claves secretas

Parece que este es solo un tipo de escenario no vital a pequeña escala en el que solo necesita ocultar una página determinada del usuario general. Según lo que dices, también supongo que no estás pensando en nada complejo … solo una contraseña secreta para acceder a una página como “openSesame” o algo así.

El concepto básico es que enviarás a las personas la contraseña secreta. Cuando las personas acceden a siteURL / secret, se enrutan a una página que solicita una contraseña. Cuando envían esa contraseña, la página necesita enviar esa contraseña a su servidor (tal vez basado en PHP, lo que sea). El servidor verificará si la contraseña coincide y luego, si es así, enviará la página secreta correcta. De lo contrario, servirá la pantalla de inicio de sesión. Su contenido no se podrá buscar, y para todos los efectos, debe ser bueno.

Pero lo que quería decir era tener en cuenta que esta solución supone que las necesidades de seguridad de esta página no son altas y que es una solución ingenua. No hay nada de malo en esto dado el contexto, pero tenlo en cuenta. Un par de cosas a tener en cuenta. Supongo que desea publicar una página estática con una contraseña que cree. No está permitiendo que los usuarios presenten sus propias contraseñas secretas como un sistema de inicio de sesión / autenticación. Digo esto porque hacer esto requeriría mucha más consideración de la seguridad para proteger a sus usuarios.

Por ejemplo, a menos que use SSL (https), su sitio es vulnerable a ataques como MITM (hombre en el medio) donde las contraseñas de los usuarios en texto claro pasan a través de la computadora de una persona mala, regalando una contraseña e inicio de sesión que probablemente estén usando para otros sitios como gmail o su banco. Estoy un poco preocupado porque dices “un conjunto de claves secretas, no debería ser visto por personas excepto yo”. Esto para mí implica que tal vez esté pensando en obtener contraseñas y almacenarlas usted mismo. En este caso, tampoco debería poder ver la contraseña de la persona. Poder ver las contraseñas de otras personas significa que está guardando las contraseñas en su sistema en texto claro. Esta es otra gran preocupación de seguridad porque si alguien ingresa a su sistema, puede ver claramente los inicios de sesión, correos electrónicos y contraseñas y controlar no solo las cuentas de sus usuarios, sino también muchas otras cuentas más importantes como los bancos, ya que los usuarios tienden a usar el mismo correo electrónico y contraseñas Lo que debe hacer es usar SSL para cifrar la transmisión y luego, cuando la contraseña llegue a su servidor, debería hacerlo de una manera. Entonces, lo que vería en lugar de “contraseña” es algo así como “ax34Lkf2fuisS234”, etc. Cada vez que alguien envía una contraseña, cifraría esa entrada de la misma manera para asegurarse de que la salida cifrada coincida con lo que almacena. Ahora, si alguien irrumpe en su sistema, no puede ver cuál es la contraseña real y les tomaría mucho más tiempo adivinar qué significa realmente “ax34Lkf2fuisS234”. Hay otras (muchas otras) cosas que debe considerar antes de asumir la responsabilidad de tomar la información privada / confidencial de las personas. El objetivo de esta publicación es considerar esto contra lo que sus intenciones son con este sitio. Las preguntas que haces indican que todavía eres nuevo en esto y estás aprendiendo. Que es genial! Todos empezamos así. Pero solo ten cuidado. 🙂

Ayer utilicé un método: si tiene un medio de autenticación, configure una cookie, luego deje que Apache mod_rewrite busque esa cookie. Esto es como una clave precompartida.

O simplemente use un método de autenticación HTTP, como Basic, o token de portador OAuth (para una API).

Encontré esta solución genial:

:: Protección de contraseña de página web y ejemplo de protección de contraseña