Buonasera a tutti.
Sto usando uno script di login già pronto questo, che sembra -a me che sono ignorante- relativamente sicuro, per quanto può esserlo un sito senza SSL: cripta le password in md5 e usa le sessioni per tenere traccia della navigazione dell'utente.
Per quanto posso apprezzare, ha un unico difetto: per proteggere le pagine fa così:
Codice PHP:
<? include('classe.php');
$page_protect = new Access_user;
$page_protect->access_page();
?>
<html>
<body>
Contenuto protetto solo per utenti loggati</p>
</body>
Cioè in pratica la funzione access_page() verifica che l'utente sia loggato e se non lo è fa un redirect 302 alla pagina di login.
Dato che ho esigenza di evitare di mandare codici 302 in homepage (sapete, per via dei motori di ricerca), ho pensato a una soluzione:
Codice PHP:
if (isset($_SESSION['user']) && isset($_SESSION['pw'])) {
include($_SERVER['DOCUMENT_ROOT']."/classes/access_user/access_user_class.php");
$query3 = "SELECT * FROM users WHERE login = '".$_SESSION['user']."'";
$controllo2 = (mysql_query($query3, $db));
while ($dato2=mysql_fetch_array($controllo2)) {
echo "<h2>Hello ".$dato2['real_name']."!</h2>";
echo "
Sei loggato come utente [b]".$dato2['login']."[/b]!!</p>";
}
} else {
echo "<a href=\"http://127.0.0.1/login/login.php\">Login</a>";
}
Ora vorrei sapere: sto facendo una fagianata?
Leggere il dato $_SESSION['user'] per sapere se un utente è loggato e con che username, è un metodo come un altro oppure aumenta di parecchio le possibilità di intrusione?
Se faccio print_r($_SESSION) ottengo:
Array ( [referer] => [user] => provaa [pw] => provaa )
però mi sembra di capire che dall'esterno non si possono vedere questi dati. Ah, ho letto che dallo stesso hosting si potrebbe... non è il mio caso: avrò un server tutto mio
Non dovrò trattare dati importanti degli utenti (beh insomma! username, pass ed e-mail, più i dati di utilizzo del sito), però una intrusione non sarebbe comunque simpatica.
Che dite, quel "if (isset($_SESSION['user']))" ci può stare o è una str... galattica?