Gentili, sto implementando una procedura di autenticazione (login) che utilizzi le sessioni per verificarne lo stato sulle pagine di un'area privata.
Mi sembra in regola e funzionante ma mi piacerebbe un parere da altri occhi critici che ne evidenziano magari punti di debolezza.
Vi posto il codice della pagina login.php quasi per intero:
Le pagine del tipo login_autenticato.php:codice:<? session_start(); if (!(isset($_SESSION["autenticato"]))) { if ( (isset($_POST['userhash'])) and (isset($_POST['passwordhash'])) ) { if ((ereg("^[a-zA-Z0-9]+$", $userhash)) || (ereg("^[a-zA-Z0-9]+$", $passwordhash))) { $query="select * from autenticazione where userhash='".$userhash."' and passwordhash='".$passwordhash."'"; ... $numrows=(@mysql_num_rows($result)); if ( (isset($numrows)) && ($numrows>0) ) { session_regenerate_id(); $_SESSION["autenticato"]="ok"; header('location:login_autenticato.php'); } else//dati di autenticazione non corretti header('location:login.php'); }//non passa controllo caratteri else header('location:login.php'); }//se non è stato postato nulla ripropone la form }//gia autenticato else { echo "Gia autenticato, vai a login_autenticato"; die; } ?> ... <form action="login.php" name="registrazione" method="post"> User <input type="text" name="user" size="20" maxlength="20"/> Password <input type="password" name="password" size="20" maxlength="20"/> <input type="button" value="Accedi" onclick="login();" /> </form> ...
E naturalmente la pagina di logout.phpcodice:<? session_start(); if (!isset($_SESSION['autenticato'])) { header('location:login.php'); exit; } ?>
Ringrazio chi può darmi qualche spunto per eventuali miglioramenti.codice:<?php session_start(); session_unset(); session_destroy(); ?>
Ciao a tutti![]()

Rispondi quotando
