Kezdőoldal » Számítástechnika » Programozás » Biztonságos ez a loginrendszer?

Biztonságos ez a loginrendszer?

Figyelt kérdés

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?



2015. ápr. 28. 17:49
 1/7 A kérdező kommentje:

Hopp, kimaradt egy }:


<?php if($_SESSION["allapot"] != "bejelentkezve") {

header('Location: index.php');

exit;

}

?>

2015. ápr. 28. 17:51
 2/7 Tengor ***** válasza:
100%

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.

2015. ápr. 28. 17:57
Hasznos számodra ez a válasz?
 3/7 A kérdező kommentje:

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?

2015. ápr. 28. 18:04
 4/7 A kérdező kommentje:

"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.

2015. ápr. 28. 18:07
 5/7 anonim ***** válasza:
100%

1. Az űrlapon küldött adatokat szűrd mielőtt a lekérdezése rakod őket (mysqli_real_escape_string) vagy használj PDO-t (Prepared statement).

2. Ügyelj a CSRF-jellegű támadásokra:

[link]

[link]

2015. ápr. 28. 18:17
Hasznos számodra ez a válasz?
 6/7 A kérdező kommentje:
Köszönöm szépen a segítséget! :)
2015. ápr. 28. 18:27
 7/7 anonim ***** válasza:

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.)

2015. ápr. 28. 23:34
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!