sessioni sicure?

akp

Utente Attivo
8 Giu 2015
133
0
16
buonasera, nel sito che sto sviluppando utilizzo le sessioni in questo modo :
pagina login :
PHP:
//dopo aver inserito i dati email e password creo la sessione per l'utente

$row = mysqli_fetch_array($result,MYSQL_ASSOC);
$nome = $row['nome'];
$email = $row['email'];
$_SESSION['nome'] = $nome;
$_SESSION['email'] = $email;

e nelle pagine in cui è obbligatorio essere loggati scrivo(in testa alla pagina) :
PHP:
session_start();
 $nome=$_SESSION['nome'];
 $email=$_SESSION['email'];
if(!$nome)navbar();
  else navbarlog();

secondo voi utilazzarle in questo modo è corretto e sicuro?
potrei aumentare la sicurezza in qualche altra maniera?
 

LuigiDonato

Utente Attivo
20 Ago 2015
63
0
6
Mi ritrovo bel tuo stesso dilemma..
Sicuramente è cosa sana non passare la sessionID nell'url, per il resto, mi metto anche io in cosa per la risposta di qualcuno con più esperienza :)
Consideralo un up :)

Inviato dal mio Blade S6 utilizzando Tapatalk
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
il tema è molto ampio, difficile trattarlo in una discussione, vi posto due link, assolutamente non esaustivi
ma dal primo si possono ottenere buone indicazioni
http://www.mitre.org/publications/p...ting-the-25-most-dangerous-programming-errors

dal secondo un po' di pratica
http://forum.mrwebmaster.it/php/40195-gestire-password-utenti-registrati-quale-codifica.html

ho approfondito abbastanza l'argomento, ed ho cercato con la maggior semplicità possibile, di attivare i suggerimenti nel codice sviluppato

mi sono accorto anche della necessità di "criticare" il proprio codice perché spesso si danno per scontate situazioni non proprio sicure
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
è uno dei metodi più usati, anche se la sicurezza assoluta non esiste e generalmente va bene per livelli di sicurezza usuali
comunque una cosa dovresti creare le sessioni solo se il log è ok
PHP:
<?php
session_start();
$nome="";//nome non trovato
$_SESSION['nome']=$nome;
if(isset($_SESSION['nome'])){
	echo "la sessione esiste";
}else{
	echo "la sessione non esiste";
}
//output 'la sessione esiste'
?>
quindi per prima cosa (se non l'hai fatto)
PHP:
<?php
if(mysqli_num_rows($result)==1)){
	//crei le sessioni solo se log ok
	$row = mysqli_fetch_array($result,MYSQL_ASSOC);
	$nome = $row['nome'];
	$email = $row['email'];
	$_SESSION['nome'] = $nome;
	$_SESSION['email'] = $email;
	// e mandi alla pagina riservata
}else{
	//log ko
	//per sicurezza, se vuoi distruggi, le eventuali sessioni esistenti
	$_SESSION=array();
	header('location=dove_vuoi.php');
	exit();
}
?>
poi nella riservata
PHP:
<?php
session_start();
if(!isset($_SESSION['nome']) || !isset($_SESSION['email'])){
	//le sessioni non esitono
	header('location=dove_vuoi.php');
	exit();
}else{
	echo "ciao ".$_SESSION['nome'];
	//e tutto il resto
}
?>
 

akp

Utente Attivo
8 Giu 2015
133
0
16
ciao
è uno dei metodi più usati, anche se la sicurezza assoluta non esiste e generalmente va bene per livelli di sicurezza usuali
comunque una cosa dovresti creare le sessioni solo se il log è ok
PHP:
<?php
session_start();
$nome="";//nome non trovato
$_SESSION['nome']=$nome;
if(isset($_SESSION['nome'])){
	echo "la sessione esiste";
}else{
	echo "la sessione non esiste";
}
//output 'la sessione esiste'
?>
quindi per prima cosa (se non l'hai fatto)
PHP:
<?php
if(mysqli_num_rows($result)==1)){
	//crei le sessioni solo se log ok
	$row = mysqli_fetch_array($result,MYSQL_ASSOC);
	$nome = $row['nome'];
	$email = $row['email'];
	$_SESSION['nome'] = $nome;
	$_SESSION['email'] = $email;
	// e mandi alla pagina riservata
}else{
	//log ko
	//per sicurezza, se vuoi distruggi, le eventuali sessioni esistenti
	$_SESSION=array();
	header('location=dove_vuoi.php');
	exit();
}
?>
poi nella riservata
PHP:
<?php
session_start();
if(!isset($_SESSION['nome']) || !isset($_SESSION['email'])){
	//le sessioni non esitono
	header('location=dove_vuoi.php');http://forum.mrwebmaster.it/newreply.php?do=newreply&p=172696&noquote=1
	exit();
}else{
	echo "ciao ".$_SESSION['nome'];
	//e tutto il resto
}
?>

grazie a tutti per le risposte.
Io ovviamente creo la sessione solo se il login va a buon fine.
In ogni pagina faccio un controllo se l'utente è loggato o meno perchè in base a ciò abbilito o disabilito funzionalità.
ho un informazione da chiederti, se volessi aggiungere come metodo di registrazione i social network dovrei sostituire le sessioni con i cookie?
 
Discussioni simili
Autore Titolo Forum Risposte Data
keyascii File temporanei Sessioni PHP 6
T PROBLEMA CON SESSIONI PHP 3
ilsuomillennio Sessioni PHP 3
maxnegri Contare sessioni aperte e creare condizione PHP 1
AC1 Sessioni php PHP 16
S [PHP] problemi con le sessioni PHP 3
B [PHP] Reload pagina e sessioni PHP 3
A Php e sessioni PHP 3
J sessioni in PHP PHP 3
T gestione livelli sessioni php msqli PHP 1
M Problema MySQL e sessioni MySQL 0
A form su più pagine e sessioni PHP 8
V Le sessioni: ho dei dubbi sul posizionamento PHP 6
G Controllo scadenza sessioni PHP 2
M Sessioni??? PHP 4
C Sessioni in php (urgente) PHP 4
R Efficenza sessioni con proxy PHP 0
baobabdesign Problema scrittura sessioni PHP 0
Shyson Non mantiene sessioni PHP 0
L segnalare l'utilizzo delle sessioni come accade per i cookie PHP 0
D Login con sessioni per 2 pagine diverse PHP 2
L problema array con le sessioni PHP 1
D Sessioni e variabili PHP 4
R problema con le sessioni PHP 2
L Sessioni rank [#PHP] PHP 3
R Sessioni, cookies e token di autenticazione PHP 0
E [risolto] win 8.1 + IE11 le sessioni PHP non fuonzionano correttamente PHP 7
A Sessioni php PHP 0
otto9due [risolto] Problema sessioni php e login PHP 5
B Sessioni PHP 10
H [risolto] Uso delle SESSIONI PHP 2
F Sessioni PHP 1
A conservazione sessioni PHP 2
S Stampare una variabile in ogni pagina usando le sessioni PHP 5
Z Registrazione e sessioni PHP 8
asevenx problema con le sessioni PHP 6
S Un piccolo aiuto su cookie e sessioni PHP 1
S Problema con sessioni PHP 4
I Problema con le sessioni PHP 2
Emix Problema sessioni... PHP 17
Z Sessioni - Database PHP 6
P Problema con l'uso delle sessioni... PHP 4
E Gestione Sessioni sui file anziche nel database - Come fare? Joomla 0
P Problema con sessioni e aggiornamento profilo PHP 21
redevilduil Php problema nelle sessioni PHP 6
P Ho riunito le prove con le sessioni, ma l'update non va PHP 20
Shyson Non mantiene le sessioni PHP 7
D [JSP] Gestire eccezioni relative alla scadenza delle sessioni Java 0
M $_SESSION['sessione'][1] possibile? Sessioni con indice. PHP 8
zighy sessioni personali PHP 9

Discussioni simili