2009-01-14 6 views
6

Estoy buscando implementar el inicio de sesión de usuario en mi sitio por primera vez. Me complace construir mi propia solución o implementar algo de código abierto, sin embargo, ningún paquete ha sido una opción obvia en mi búsqueda hasta el momento. Del mismo modo, soy plenamente consciente de que, como máximo, como programador intermedio de php, es muy probable que me pierda algo obvio si utilizo mi propia solución y dejo las puertas bien abiertas.autorización simple/capacidad de inicio de sesión en php

¿Alguna sugerencia? Aquí no estamos hablando de datos muy confidenciales o de pago, pero igualmente, ¡me entusiasma que las personas no arruinen mi sitio!

requisitos se - php basan - simple como sea posible, es necesario para las campanas y silbidos de lujo - no Zend Framework, ya que ahora he rodar mis propios frameworkthanks muy básicas a this post

Gracias por tu aportación .

+0

Es posible que desee echar un vistazo a https://github.com/delight-im/PHP-Auth que es tanto independiente del marco y base de datos agnóstica. – caw

Respuesta

5

Unos buenos gotcha de seguridad son

  • Nunca almacenar la contraseña de un no codificados usuarios en la base de datos
  • Nunca almacenar la contraseña de los usuarios o incluso un hash de la contraseña en sesión o datos de cookies.
  • Si necesita asegurarse de que el inicio de sesión sea seguro, debe usar https.

He encontrado estos artículo muy útil en la construcción de sistemas de inicio de sesión con galletas:

+0

+1 Gracias, estaba almacenando la contraseña en una variable de sesión sin darse cuenta –

+0

¿Por qué no puede almacenar una contraseña en una SESIÓN? No veo cómo eso es inseguro. –

+1

Sé que es viejo, pero aún así dejaré mi respuesta. No puede dejar la contraseña en sesión porque en el caso de una inyección de JavaScript, alguien puede conservar esta contraseña y usarla. Algunos hackers también pueden ver los encabezados enviados al servidor, por lo que es fácil obtener esta contraseña. Además, el 99,999% de las personas usa este mismo nombre de usuario y contraseña para varios sitios. –

3

"Te alegrarás de niña".

La seguridad es difícil. Odio decir esto, pero las probabilidades de que hagas un esquema simple de autorización que sea seguro son bastante escasas. No hay un modo fácil aquí. Por lo que es posible que desee comenzar leyendo un montón de código de autenticación en los distintos frameworks/cmses y otros lugares donde puede ver cómo lo han hecho otros y comenzar a investigar.

Éstos son algunos enlaces: http://www.topmost.se/personal/articles/casual-cryptography-for-web-developers.htm http://pear.php.net/packages.php?catpid=1

-1

Esto no es tan difícil, y divertido de código, como un principiante.

Necesita un lugar para almacenar sus datos (digamos una base de datos mysql).

Al menos debe tener un campo de inicio de sesión y un campo de contraseña. (la contraseña debe almacenarse crypter usando sha1() por ejemplo).

Ahora, debe mostrar un formulario de inicio de sesión. Supongo que esto está bien para ti.

¿Qué hacer cuando recibimos el nombre de usuario y la contraseña?

Consulta la base de datos para ver si hay una coincidencia con login_base == login_form y password_base == sha1 (password_form).

En caso afirmativo, configura algo, como una sesión, por ejemplo.

Por lo tanto, en una página donde debe registrarse, solo debe verificar si hay un conjunto de sesión.

Esto es por la base; entonces puedes agregar algunos niveles, etc.

+3

-1 para la declaración ridículamente incorrecta "Esto no es tan difícil y divertido de codificar, como un principiante". Hay un millón de formas de obtener errores de autenticación básicos, y los principiantes codifican auth como lemmings saltando desde un acantilado. –

0

me parece que para algunos usos, la construcción de mi propia mediante la autenticación HTTP es suficiente. Recomendaría this como punto de partida.

Dado que tiene su propio marco básico, no debería ser demasiado difícil incluir el código de autenticación en algún lugar que sea común.

Algunas de las ventajas son

    No
  • una gran cantidad de código.
  • No requiere cookies o reescritura de URL.

Desventajas

  • no escala bien para controlar el acceso más granular.
  • No fácil manera de "registrar fuera".

-
BMB

Cuestiones relacionadas