Controllo sessione

Ciao a tutti, sto creando uno script per la gestione di una community, ed ho la necessità di avere alcune aree del sito protette.

Il quesito è:

per proteggere le pagine ho inserito uno script di login.

Alcune pagine però possono essere raggiunte tramite indirizzo, per essere concreto, supponiamo che qualcuno digiti il percorso che porta al pannello utente panel.php

La necessità, nel caso in cui l'utente non risulti loggato è quella di reindirizzarlo alla pagina di login.

Per far questo nello script di login, a login effettuato ho settato oltre le variabili di sessione user pass e id una terza variabile chiamata "logged" impostata a 1.

Questo avviene dopo il riconoscimento dell'utente, quindi a sessione non avviata è a 0 e quindi inserendo un controllo del suo valore nelle pagine da proteggere assolve alla sua funzione.

Chiedevo se questo è troppo poco per la sicurezza delle pagine o se può andar bene.

Grazie e ciao :)

inviato 9 anni fa
oscar
X 0 X

io direi che è troppo..

userei una sola variabile di sessione, l'username.. se l'username è settato in sessione, l'utente è loggato.. altrimenti no.. semplice semplice, e senza portarsi in giro per la sessione la password.. che meno si tocca e meglio è ;)

 :bye:

risposto 9 anni fa
}gu|do[z]{®©
X 0 X

si ma uno trova il modo di crearsi la sessione ( e ti assicuro che si può trovare :D ) e addio sicurezza :D

converrebbe sempre controllare se l'username corrisponde ad uno presente nel database e per controllare se è davvero la sua sessione fare un controllo con la password ( logicamente la password con il dovuto salt )

:bye:

risposto 9 anni fa
Andrea Turso
Andrea Turso
86
X 0 X
si ma uno trova il modo di crearsi la sessione ( e ti assicuro che si può trovare :D )

mumble.. con configurazioni corrette la vedo difficile.. con apache 2 che gestisce correttamente i permessi dei diversi utenti, e il php senza register globals.. non vedo come si possa aggirare la sessione, copiarla, crearla "finta"...

se mi sbaglio, spiega perchè mi sfugge  :o

risposto 9 anni fa
}gu|do[z]{®©
X 0 X

mmh si dovrebbe vedere com'è configurato apache e che non si incorra nel rischio di inclusione di qualche shell dall'esterno( io stesso ne ho scritta una che crea sessioni sul server e permette di navigare in tutto il filesystem )

:bye:

risposto 9 anni fa
Andrea Turso
Andrea Turso
86
modificato 9 anni fa
X 0 X

Come si fa, dall'esterno, a dare un valore a $_SESSION['username'] ?

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

non dall'esterno ma dal'interno :)

usi il programma ( tanto per fargli settare le sessioni ) includi la shell, vedi i nomi delle variabili di sessione ne crei di nuove con i tuoi valori :D

fine del sito :D

logicamente se non includi la shell non puoi fare nulla :D ma molti siti ( senza volerlo ) permettono l'inclusione di file esterni al server.

Logicamente uno non va ad includere la shell e bucare il sito , ma non si può mai sapere...come dicono i libri di php : "mai fidarsi dell'utente", perchè a priori non puoi mai sapere che cazspita passa in mente all'utente che visita il tuo sito!

quindi è sempre meglio prevenire che curare.

ho detto questo non perchè ho il sadico piacere di andare e bucare siti ( lo facevo una volta .D ma poi ho smesso, preferisco farli, piuttosto che distruggerli e rompere le palle alla gente :D ) ma perchè conosco il ragionamento che fanno i lamer ( non sai quante volte mi hanno bucato un mio ex sito ).

da non dimenticare che : il lamer è sempre in agguato!!!  >:( stardi, la mamma dei lamer è sempre incinta :2funny:

:bye:

risposto 9 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

Ehm... siete tutti un po' ot :)

Cmq, io il controllo non lo faccio sulla variabile pwd, semplicemnte dopo che l'utente ha fatto login, imposto una variabile di sessione con valore 1 ed è quella che porto a giro e utilizzo per il controllo.

Ora da profano il mio pensiero è stato: se la variabile si riempie solo a login effettuato, in caso contrario l'accesso ai dati riservati non può essere effettuato e quindi tutto ok.

Solo mi sembrava un po' poco limitare tutto il controllo ad un semplice 0/1

Zau!

risposto 9 anni fa
oscar
X 0 X
Solo mi sembrava un po' poco limitare tutto il controllo ad un semplice 0/1

basta e avanza

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Grazie mille per le risposte, quando poi avrò finito il tutto, se ne avete voglia mi controllate il livello di vulnerabilità :)

risposto 9 anni fa
oscar
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda