2012-07-28 17 views
5

Mi sitio está bajo un ataque de fuerza bruta en el que los atacantes intentan obtener acceso a cuentas de usuario. Los bots no tienen un agente de usuario. Tengo un sistema que impide que una persona inicie sesión si supera los 3 intentos por cuenta en menos de 10 minutos.¿Las sesiones están almacenadas solo en un navegador?

También hice que compruebe si hay un agente de usuario, y si no, salga.

Mi pregunta es: ¿Las sesiones solo se almacenan en los navegadores? Lo que estoy pensando es que están usando un script ejecutado a través de la línea de comandos.

He implementado esto también:

if(!isset($_COOKIE[ini_get('session.name')])) { 
header("HTTP/1.0 404 Not Found"); 
exit; 
} 

¿Hay algo más que pueda hacer para prevenir estos ataques?

+2

Las sesiones son de almacenamiento del lado del servidor que (típicamente) están vinculadas a usuarios con cookies. – nickb

+0

Google para: secuestro de sesión en php – Yang

Respuesta

14

El contenido de una variable de sesión se almacena en el servidor; sin embargo, la sesión se identifica mediante una ID de sesión que se almacena en el cliente y se envía con cada solicitud. Por lo general, el ID de la sesión se almacena en una cookie, pero también se puede agregar a las URL.

Hay una lectura muy interesante en session hijacking en Wiki y también una en PHP Security Consortium que debería darte una mejor comprensión de qué se trata el secuestro y cómo prevenirlo.

hay una gran cantidad de métodos para ayudar a prevenir estos ataques, he señalado tres:

  • Uso de PHP de session_regenerate_id() después de que el usuario inicia sesión con éxito en Esto crea un nuevo identificador de sesión, diferente de la. uno que se creó cuando visitaron por primera vez el área pública/segura, si había una sesión comenzada por supuesto.
  • Registre la dirección IP del usuario, ID de sesión y agente de usuario cuando haya iniciado sesión correctamente. Compruebe la IP y el agente de usuario para cada solicitud y si la IP y el agente no coinciden para esta sesión, vuelva a iniciar sesión. Sin embargo, ten cuidado, a veces la IP de un usuario puede cambiar y puede molestar a alguien. También tenga en cuenta que un agente de usuario también puede ser falsificado fácilmente.
  • Use SSL/TCL para ocultar la información enviada en una solicitud.
Cuestiones relacionadas