Sto eseguendo un servizio semplice in cui gli utenti devono effettuare il login per essere in grado di far funzionare funzioni speciali.
Il mio database MySql memorizza username
, password
e user_id
.
Quando l'utente vuole effettuare il login, deve fornire il proprio nome utente e la password che sono pubblicati su profile.php.
Il profile.php fa un semplice controllo:
// Sanity Check
if(empty($_POST['smart_email'])|| empty($_POST['smart_password']))
{
echo 'Sorry, wrong login/passwd';
exit;
}
else
{
//
$smart_email = $_POST['smart_email'];
$smart_password=$_POST['smart_password'];
// Check if registerd and password matches
if(DB_IsAuthorized($smart_email, $smart_password) == true)
{
// Obtain proper UserID from the database
$UserID = DB_GetId($smart_email);
// set the session user_id variable
$_SESSION['user_id'] = $UserID;
//
// Display the User profile page
//
}
}
Da quel momento, ogni singola pagina che è user-correlati ha un assegno di user_id
set in $_SESSION
per scoprire se questo utente è stato effettuato l'accesso e è autorizzato.
if (isset($_SESSION['user_id']) && is_numeric($_SESSION['user_id']) && $_SESSION['user_id']>0)
{
// USER IS LOGGED IN
}
La domanda è: È questo $_SESSION['user_id']
controllo sufficiente a garantire le pagine dal NON gli utenti registrati?
In realtà, sì, è sufficiente. Ma senza altre misure i tuoi visitatori sono stimabili per la maggior parte degli attacchi sul proprio account. Posso proporti di usare un framework e aquire ssl Sertificate per fare https. Non disprezzarlo! Le persone che creano framework hanno molta esperienza! A proposito, mi piace Yii, è piuttosto semplice :) – MaxXx1313
Quando si tratta di proteggere le pagine del tuo sito, non penso che sia mai abbastanza che si possa fare. Tuttavia, penso che in generale un semplice controllo $ _SESSION' possa essere sufficiente. –
Forse ero fuori tema all'inizio. Stai chiedendo se l'uso di '$ _SESSION' ti permetterà di bloccare il contenuto degli utenti non registrati; o quanto è sicuro '$ _SESSION' e sta entrando in aree di attacchi brute force, dirottamenti, ecc. – chris85