session_start();
session_start(); postato il 31/12/2010 09:57:45 nel forum programmazione, open source e hosting e modificato da darkside of breakfast il 31/12/2010 13:06:59
Domanda stupida......
Inserire in ogni pagina, dopo il Login dell'utente nel sito, sempre:
<?php
// Controllo accesso
session_start();
if (!isset($_SESSION['Username']))
{
header('location:login_failed.php');
exit;
}
?>
....affinchè abbia inizio una Sessione sicura....?
Pagine → 1 2
31/12/2010 10:39:59 e modificato da blancks il 31/12/2010 10:40:56
- ewan - ha scritto: Domanda stupida......
Inserire in ogni pagina, dopo il Login dell'utente nel sito, sempre:
<?php
// Controllo accesso
session_start();
if (!isset($_SESSION['Username']))
{
header('location:login_failed.php');
exit;
}
?>
....affinchè abbia inizio una Sessione sicura....?
Sicura no (per quello ti consiglio di sbirciare qui: https://www.gdr-online.com/readforum.asp?id=98049 ↗), ma è sicuramente un buon modo per verificare che non sia scaduta e che passi dati invalidi alle tue procedure ;-)
31/12/2010 10:52:18
Grazie blancks
31/12/2010 11:55:55
in una mia risposta in questo topic se ti interessa c'è anche un approfondimento su come rendere un pò più siicura una sessione ai fini del furto di sessione https://www.gdr-online.com/readforum.asp?id=124978 ↗
più che l'intero codice che hai scritto in ogni pagina ti consiglierei comunque di creare una piccola funzioncina, classe o anche solo di scorposrare quel codice e metterlo in un file a parte da includere in maniera che se tra qualche tempo decidi di cambiare la procedura di autentificazione della sessione la devi cambiare una volta sola e non su tutte le pagine
31/12/2010 13:07:28
ti ho corretto il titolo del topic, per il resto gli altri hanno detto abbastanza :)
31/12/2010 14:32:28
Seguendo le vostre indicazioni e cercando anche un pò in internet ho costruito una sorta di "controllo" maggiore sulla sessione, ditemi che ve ne pare:
<?php
// Controllo accesso
session_start();
//se era presente il session user
if(isset($_SESSION['user'])){
$user=mysql_query("SELECT * FROM user WHERE MD5(CONCAT(id,'@@@@',nome)) ='".mysql_escape_string($_SESSION['user'])."' limit 1");
//se mysql restiuisce 0 record
if(mysql_num_rows($user) == 0){
//distruggi la sessione
session_destroy();
//invia all apagina di errore.
header('location:errore.php');
}
else{
//ok, ha trovato e associa ad $_USER i valori dello user
//i dati dell' utente risiedono in questa variabile
//e potreai accedervi SOLO da codice php
$_USER=mysql_fetch_assoc($user);
}
}
else{
//non è impostato il session user... vai alla pagina di errore
header('location:errori/sessione.php');
sbagliato qualcosa?
01/01/2011 11:10:49
Nessuuuunooo risponde???? :((
01/01/2011 14:51:06
il controllo che hai messo tu:
if(isset($_SESSION['user'])){
$user=mysql_query("SELECT * FROM user WHERE MD5(CONCAT(id,'@@@@',nome)) ='".mysql_escape_string($_SESSION['user'])."' limit 1");
si basa sulla variabile di sessione £_SESSION['user'] per cui se qualcuno forgia o ruba la sessione il "ladro" di sessioni avrà l'user dell'utente di cui ha rubato la sessione e il controllo non darebbe errori.
se vuoi mettere un controllo che diminuisca le possibilità di furto delle sessioni devi far fare un controllo tra qualcosa salvato sicuramente dall'utente vero al momento del login e qualcosa che possa essere abbastanza univoco che possa essere recuperato da php senza essere salvato dall'utente.
un esempio di questo sono i tre dati che ho indicato nel mio post: l'ip dell'utente che per essere forgiato richiede gia una certa competenza la stringa data da $_SERVER['HTTP_USER_AGENT'] che preveda che il ladro di sesisoni conosca il browser e sistema operativo con cui ha avuto accesso il vero pg e sia in grado di forgiarlo
01/01/2011 15:03:56
A questo punto però mi sorge spontanea una domanda, ma per un GDR tutta questa protezione serve?
Mi spiego subito, è un gioco non una banca dati, una volta che si mettono al sicuro i dati sensibili un controllo come ho messo su non è sufficiente?
01/01/2011 15:04:29
A questo punto però mi sorge spontanea una domanda, ma per un GDR tutta questa protezione serve?
Mi spiego subito, è un gioco non una banca dati, una volta che si mettono al sicuro i dati sensibili un controllo come ho messo su non è sufficiente?
01/01/2011 15:35:19
Unnanzitutto credo che dipenda dal grado di paranoia personale quanto uno voglia implementa<re come controlli di sicurezza.
Pagine → 1 2
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
AlterEgo ↗
New Orleans ↗
World of Tanks ↗
Raja Dunia ↗
Imperion ↗
Storie di Agarthi ↗
Hero Wars ↗
Wuthering Waves ↗
RAID Shadow Legends ↗