¿Las sesiones de PHP se basan en cookies o en un par de cookies-IP?

5

Tengo un sitio web de PHP y mi pregunta es:

Si alguien logra robar las cookies de mis usuarios a través de un ataque XSS,
¿Es suficiente para él ser identificado como el usuario?
¿O su IP también tiene que ser la misma que la del usuario que inició sesión?

Mi php.ini tiene session.use-cookies y session.use-only-cookies configuradas como verdaderas

    
pregunta fiftyeight 24.08.2011 - 15:17
fuente

2 respuestas

10

Sólo cookies; por supuesto, no hay nada que te lo impida:

if (empty($_SESSION['ip']) {
  $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
} else {
  if ($_SESSION['ip'] != $_SERVER['REMOTE_ADDR']) {
    // IP changed
  }
}

Tenga en cuenta que la identificación de un usuario por dirección IP es solo una medida provisional, y no lo consideraría relevante para la seguridad, por ejemplo. Las organizaciones grandes usan NAT, por lo que aparecerán varias computadoras con la misma dirección que Internet. A la inversa, por ejemplo La dirección IP de los usuarios móviles puede cambiar a menudo, así que no asuma automáticamente "la misma dirección IP == mismo usuario, diferente dirección IP == usuario diferente".

Otras preocupaciones: IPv4 e IPv6 de doble pila, Extensiones de privacidad de IPv6, etc.

    
respondido por el Piskvor 24.08.2011 - 15:48
fuente
6

Una cookie de PHP 'SESSION' no incorpora información de dirección IP de forma inmediata. Es posible asociarlo con esa información, como mostró Piskvor, pero hacerlo puede romper la aplicación para algunos usuarios. Consulte discusión de OWASP sobre los posibles problemas que puede causar el enlace de la dirección IP.

    
respondido por el gowenfawr 24.08.2011 - 15:51
fuente

Lea otras preguntas en las etiquetas