Prvo, da li je sigurno cuvati podatke o korisniku u $_SESSION['something'] , username, password, email..itd... Ili je mozda bolja zaštita da se taj sadržaj kriptuje. Govorimo o nekoj normalnoj sigurnosti i običnom sajtu ali i ako je u pitanju online shop , broj kreditne kartice recimo..?
Da li je potrebno kriptovati sadrzaje u $_SESSION?
Zaključano
Zakačeno
Nema potrebe. Ako neko provali i izčita sadržaj sesije onda ga ništa ne sprečava da isčita celu bazu podataka i sve fajlove na celom serveru a ne samo tvom sajtu.
Podatke o korisnicima možeš prenositi kroz sesije i gledaš da ih ne čuvaš "dugo" u sesijama. Isto tako, čim sesija odradi svoj posao, isprazniš i ubiješ je. Ili jednostavno promeniš vrednost u null. Takođe, podatke o korisnicima, možeš čuvati u posebnom php fajlu sa jako zanimljivim imenom. Naziv da bude asocijacija a ne "users.php", već "_foo_Boo_Moo.php". Isto tako, sesije nije loše krstiti npr.. $_SESSION['_g__x_Ty_o'].
I kada upišeš te podatke u taj neki php fajl, bez obzira što se php kod ne prikazuje u pretraživaču, logično, ne upisuješ ime, prezime, nick, pass, etc.. već..
A čitaš sa base64_decode($nick) .
Za serijalizovani niz, ide obrnut proces.
I kada upišeš te podatke u taj neki php fajl, bez obzira što se php kod ne prikazuje u pretraživaču, logično, ne upisuješ ime, prezime, nick, pass, etc.. već..
Code (php):
<?php
$arrWuSrs=array($nick,$email,$pass,$ip,$timeStamp);
$notEasyToRead[\''.base64_encode($nick).'\']=\''.base64_encode(serialize($arrWuSrs)).'\';
?>
<?php
$arrWuSrs=array($nick,$email,$pass,$ip,$timeStamp);
$notEasyToRead[\''.base64_encode($nick).'\']=\''.base64_encode(serialize($arrWuSrs)).'\';
?>
A čitaš sa base64_decode($nick) .
Za serijalizovani niz, ide obrnut proces.
Code (php):
Potpis
about:networking
Po pravilima kartičnih organizacija, broj kartice ne smiješ nikako da čuvaš u otvorenom obiku, čak ni u svojoj bazi. Oni predlažu da čuvaš hash ili ako baš moraš onda kriptovano.