Saltar al contenido

¿Es una mala práctica utilizar el método GET como nombre de usuario/contraseña de inicio de sesión para los administradores?

este problema se puede abordar de variadas maneras, pero te dejamos la resolución más completa para nosotros.

Solución:

Esto almacenaría el enlace de inicio de sesión con contraseña y nombre de usuario en el historial de los navegadores. También podría ser capturado accidentalmente por cosas como los registros del firewall, que no capturarían las variables de publicación.

Puedo pensar en bastantes razones por las que esto no sería ideal:

  • En el fragmento de código que publicaste, ahora estás codificando un secreto key en el código fuente de su programa. Esto es malo porque ahora, si desea publicar o compartir su código fuente con cualquier otra persona, deberá recordar redactarlo. key. La seguridad de un sistema no debe depender de que su código fuente permanezca oculto.
  • Esto no escala bien. Si solo tienes un secreto key que todos los administradores deben compartir, se vuelve mucho más fácil de filtrar accidentalmente. Si se filtra, no tendría forma de saber quién fue el responsable de filtrarlo. Podrías proporcionar otro key a cada administrador, pero esto se complica muy rápidamente.
  • No puedes cambiar el key fácilmente. En términos generales, es probable que necesite administradores del sitio que estén no también operadores de servidores. Pero con esta configuración, no puede otorgar a nadie la capacidad de cambiar el key sin también otorgar acceso al código fuente y al servidor, que pueden o no saber manejar. Ajustar el código fuente que se ejecuta en un sistema de producción de cualquier manera es propenso a errores y probablemente resultará en tiempo de inactividad.
  • Debido a que usa GET, es muy fácil para el key para filtrarse a través de los historiales del navegador o compartir enlaces accidentalmente.
  • No es muy fácil de usar. Usar esto requiere saber cómo manipular manualmente un parámetro GET específico. Usted dice que la facilidad de uso para los administradores no es necesaria, pero definitivamente no es así. true en general. Todo su sitio debe ser lo más fácil de usar posible, incluido el panel del administrador.

En resumen, puedo ver este tipo de sistema en uso como una medida temporal en un sitio pequeño, donde hay un administrador del sitio que también escribió el código fuente del sitio y administra el servidor. Pero cualquier cosa más grande que eso, querrá tener un panel de inicio de sesión de administrador real, con credenciales hash y saladas almacenadas en la base de datos como cualquier otro usuario.

No estrictamente desde una postura de seguridad, pero el Protocolo de transferencia de hipertexto: HTTP/1.1 RFC 2616 lo deja bastante claro:

...se ha establecido la convención de que el Los métodos GET y HEAD NO DEBEN tener el significado de realizar una acción distinta de la recuperación. Estos métodos deben considerarse "seguros". Esto permite que los agentes de usuario representen otros métodos, como POST, PUT y DELETE, de una manera especial, para que el usuario sea consciente del hecho de que se está solicitando una acción posiblemente insegura.

GET debe usarse solo para la recuperación. En su caso, está enviando datos al servidor, el servidor está realizando estas acciones específicas (como mínimo):

  • Autenticar a un usuario
  • Crear una sesión para rastrear el estado del usuario (PHP crea datos de sesión en archivos planos o una base de datos)
  • Configuración de una cookie de sesión para rastrear la sesión

POST sobre HTTPS sería el método preferido para transmitir datos confidenciales; nombre de usuario, contraseña en este caso.

Valoraciones y comentarios

Más adelante puedes encontrar las referencias de otros programadores, tú de igual forma eres capaz mostrar el tuyo si te gusta.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada.