Ho già creato e perfezionato sia i sistemi di registrazione che i sistemi di accesso, tuttavia sono convinto che la parte difficile sia quando si crea una sessione. Per quanto ne so, ciò è dovuto sia ad Hijacking che alla fissazione. Che in tutta onestà non comprendo pienamente il concetto di.
Ho navigato su internet tutto il giorno e ho fatto una grande quantità di ricerche. i seguenti articoli mi sono stati utili fino ad ora:
Come creare sessioni a prova di proiettile
Guida alla sicurezza di PHP: Sessioni
Finora ho molto poco, potrei davvero usare aiuto e guida. Questo è un po 'di ciò che ho ottenuto finora:
Quando una password utente è abbinata e hanno confermato la propria identità utilizzando lo script di accesso, viene chiamata la seguente funzione. La sessione viene avviata all'inizio dello script di accesso.
function begin_session()
{
session_regenerate_id();
$_SESSION['valid'] = 1;
$_SESSION['fingerprint'] = md5($_SERVER['HTTP_USER_AGENT'] . $_SERVER['REMOTE_ADDR']);
}
Sto usando la variabile $ _SESSION ['valid'] come una semplice conferma della registrazione dell'utente. Sto assegnando la sessione a un singolo agente utente e indirizzo IP. Vedo come l'User Agent sia abbastanza inutile in quanto può essere facilmente falsificato, ma ritengo sia meglio averlo piuttosto che non averlo.
È evidente per me che gli utenti con IP mutevoli / dinamici verranno disconnessi ... ma tutti quelli che mi hanno detto questo non sono riusciti a presentarmi un'opzione migliore o me lo hanno spiegato meglio.
Sto quindi utilizzando la seguente funzione per abbinare l'agente utente corrente all'agente utente originale registrato alla creazione della sessione.
function authenticate()
{
session_start();
if ($_SESSION['fingerprint'] != md5($_SERVER['HTTP_USER_AGENT'] . $_SERVER['REMOTE_ADDR'])) {
session_destroy();
echo 'die';
header('Location: http://website login page/');
exit();
}
}
Al momento a causa della mia mancanza di comprensione, non so da dove sono vulnerabile o dove posso andare e apportare miglioramenti. Questo è tutto molto nuovo per me e al momento almeno sto cercando di imparare questo nel mio tempo libero. È tutto nuovo per me, e voglio garantire il miglior lavoro.