Seguridad de sesión PHP

Resuelto saint_groceon asked hace 54 años • 13 respuestas

¿Cuáles son algunas pautas para mantener una seguridad de sesión responsable con PHP? ¡Hay información en toda la web y ya es hora de que todo llegue a un solo lugar!

saint_groceon avatar Jan 01 '70 08:01 saint_groceon
Aceptado

Hay un par de cosas que debe hacer para mantener su sesión segura:

  1. Utilice SSL al autenticar usuarios o realizar operaciones confidenciales.
  2. Regenere la identificación de la sesión cada vez que cambie el nivel de seguridad (como al iniciar sesión). Incluso puede regenerar la identificación de sesión en cada solicitud si lo desea.
  3. Tener sesiones de tiempo de espera
  4. No utilice registros globales
  5. Almacene los detalles de autenticación en el servidor. Es decir, no envíe detalles como el nombre de usuario en la cookie.
  6. Comprobar el $_SERVER['HTTP_USER_AGENT']. Esto añade una pequeña barrera al secuestro de sesiones. También puede comprobar la dirección IP. Pero esto causa problemas a los usuarios que cambian de dirección IP debido al equilibrio de carga en múltiples conexiones a Internet, etc. (como es el caso en nuestro entorno aquí).
  7. Bloquee el acceso a las sesiones en el sistema de archivos o utilice un manejo de sesión personalizado
  8. Para operaciones confidenciales, considere solicitar a los usuarios registrados que proporcionen nuevamente sus detalles de autenticación.
grom avatar Aug 11 '2008 02:08 grom

Una pauta es llamar a session_regenerate_id cada vez que cambia el nivel de seguridad de una sesión. Esto ayuda a prevenir el secuestro de sesión.

saint_groceon avatar Aug 02 '2008 02:08 saint_groceon

Mis dos (o más) centavos:

  • No confíes en nadie
  • Filtrar entrada, escapar de salida (las cookies y los datos de la sesión también son su entrada)
  • Evite XSS (mantenga su HTML bien formado, eche un vistazo a PHPTAL o HTMLPurifier )
  • Defensa en profundidad
  • No exponer datos

Hay un libro pequeño pero bueno sobre este tema: Essential PHP Security de Chris Shiflett .

Seguridad PHP esencial http://shiflett.org/images/essential-php-security-small.png

En la página de inicio del libro encontrará algunos ejemplos de código interesantes y capítulos de muestra.

Puede utilizar la técnica mencionada anteriormente (IP y UserAgent), descrita aquí: Cómo evitar el robo de identidad

takeshin avatar Apr 06 '2010 16:04 takeshin