Biztonságos ez a loginrendszer?
Elég kezdő vagyok a PHP-hez és a MySQLi-hoz. Összeraktam egy egyszerű kis login rendszert gyakorlásképpen. Szeretném megtudni, hogy elég biztonágos-e, nem támadhatja meg valaki valamilyen kis rést kihasználva.
A kód működési elve:
A felhasználó beírja az adatokat, amiket a rendszer összehasonlít az adatbázisban lévőekkel. Ha van találat, akkor a sessionba "berak" két dolgot:
$_SESSION["fnev"] = "Felhasználó neve";
$_SESSION["allapot"] = "bejelentkezve";
Ezután a védett oldalakra bebiggyesztem ezt a kódot:
<?php if($_SESSION["allapot"] != "bejelentkezve") {
header('Location: index.php');
exit;
?>
Tudom hogy elég amatőr, de pont ezért van a kérdés. Természetesen a jelszavak titkosítva vannak az adatbázisban. Biztos, hogy egy olyan ember, aki nincs bejelentkezve, nem tudja megnézni a védett oldalakat?
Hopp, kimaradt egy }:
<?php if($_SESSION["allapot"] != "bejelentkezve") {
header('Location: index.php');
exit;
}
?>
A biztonsági rés a az SQL lekérdezésben lehet, ez a rész így rendben van, viszont:
1.) Egy igen/nem érték tárolására elpazarolsz |bejelentkezve| karakter, ahelyett, hogy egy bool típust v. intet használnál.
2.) Ha valaki bejelentkezik, akkor tárolni kell a sessionban a felhasználó adatait v. legalább a ID-ját. Ha már ezt tárolod, akkor kár egy külön értéket pazarolni neki, mert ha van ID akkor be van jelentkezve, ha nincs, akkor nincs bejelentkezve.
Köszönöm a választ. Valóban le lehetne egyszerűsíteni a kódot, meg is teszem majd.
A SQL kódba milyen tipikus hibák fordulhatnak elő általában, ami miatt nem lesz biztonságos a rendszer?
"A SQL kódba milyen tipikus hibák fordulhatnak elő általában, ami miatt nem lesz biztonságos a rendszer?" ez nagyon értelmesre sikeredett :D
Annyi a lényeg, hogy mik azok a hibák, amiket egy kezdő általában elkövet.
A 18:17-as válaszhoz egy kiegészítés, a PDO nem rossz, de a MySQLi is tud prepared statementeket kezelni, szóval nem kell neki az escape, csak jól kell használni.
Na meg persze a kimentet sem árt szűrni XSS miatt mondjuk. (Nem mókás amikor a user felhasználó nevében vagy bármilyen adatában van javascript és a profil oldalon vagy akárhol lefut.)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!