Le sessioni PHP sono basate su cookie o su una coppia IP cookie?

5

Ho un sito Web PHP e la mia domanda è:

Se qualcuno riesce a rubare i cookie dei miei utenti tramite un attacco XSS,
è sufficiente che sia identificato come utente?
O anche il suo IP deve essere uguale all'utente che ha effettuato l'accesso?

Il mio php.ini ha session.use-cookies e session.use-only-cookies impostati su true

    
posta fiftyeight 24.08.2011 - 15:17
fonte

2 risposte

10

Solo cookie; ovviamente, non c'è nulla che ti impedisca di fare questo:

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

Si noti che l'identificazione di un utente tramite l'indirizzo IP è solo una misura di stopgap e non la considererei rilevante per la sicurezza, ad es. le grandi organizzazioni utilizzano NAT, quindi appariranno più computer con lo stesso indirizzo su Internet in generale. Al contrario, ad es. l'indirizzo IP degli utenti mobili può cambiare spesso, quindi non assumere automaticamente "stesso indirizzo IP == stesso utente, diverso indirizzo IP == utente diverso".

Ulteriori preoccupazioni: IPv4 e IPv6 dual-stack, estensioni per la privacy IPv6, ecc.

    
risposta data 24.08.2011 - 15:48
fonte
6

Un cookie "SESSION" in PHP non incorpora le informazioni sull'indirizzo IP immediatamente. È possibile associarlo a tali informazioni, come mostrato da Piskvor, ma farlo potrebbe interrompere l'applicazione per alcuni utenti. Vedi la discussione di OWASP sui possibili problemi che l'associazione dell'indirizzo IP può causare.

    
risposta data 24.08.2011 - 15:51
fonte

Leggi altre domande sui tag