2012-07-28 16 views
5

Il mio sito è sottoposto a un attacco di forza bruta in cui gli aggressori stanno tentando di accedere agli account utente. I robot non hanno un agente utente. Ho un sistema che blocca una persona dall'accedere se supera i 3 tentativi per account in meno di 10 minuti.Le sessioni sono memorizzate solo in un browser?

Ho fatto anche il controllo di un agente utente, e in caso contrario, esci.

La mia domanda è: le sessioni sono memorizzate solo nei browser? Quello che sto pensando è che stanno usando uno script eseguito tramite riga di comando.

Ho implementato anche questo:

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

C'è qualcos'altro che posso fare per prevenire questi attacchi?

+2

Le sessioni sono storage lato server che sono (in genere) collegati agli utenti con cookie. – nickb

+0

Google per: Session Hijack in php – Yang

risposta

14

Il contenuto di una variabile di sessione viene memorizzato sul server, tuttavia, la sessione viene identificata da un ID di sessione che viene archiviato sul client e inviato con ogni richiesta. Di solito l'ID di sessione è memorizzato in un cookie, ma può anche essere aggiunto agli URL.

C'è una lettura piuttosto interessante su session hijacking su Wiki e anche una su PHP Security Consortium che dovrebbe darvi una migliore comprensione di cosa sia il dirottamento e come prevenirlo.

ci sono un sacco di metodi per aiutare a prevenire questi attacchi, ho sottolineato tre:

  • Utilizzare PHP di session_regenerate_id() dopo che l'utente accede con successo in Questo crea un nuovo ID di sessione, diverso da quello. uno che è stato creato quando hanno visitato per la prima volta l'area pubblica/sicura, se ovviamente è stata avviata una sessione.
  • Registrare l'indirizzo IP dell'utente, l'ID sessione e l'agente utente quando è stato effettuato l'accesso. Verificare l'IP e l'agente utente per ogni richiesta e se l'IP e l'agente non corrispondono per questa sessione, effettuare di nuovo l'accesso. Attenzione però, a volte l'IP di un utente può cambiare e può infastidire qualcuno. Si noti inoltre che anche un programma utente può essere facilmente falsificato.
  • Utilizzare SSL/TCL per nascondere le informazioni inviate in una richiesta.