Kezdőoldal » Számítástechnika » Weblapkészítés » Biztonságos login rendszer?

Biztonságos login rendszer?

Figyelt kérdés

Nem is olyan rég elkészítettem első működő login rendszerem <kezdő vagyok>, amely abból állt, hogy regisztrálás után bekerült adatbázisba a felhasználónév, a hashelt jelszó illetve a többi cucc. Ha ez megvolt, akkor jöhet a belépés.

A belépés annyiból áll, hogy felhasználónév, jelszó, és bejelentkezés. Amint ezeket bekértem, megnézem adatbázisban minden stimmel-e, aztán itt jön a bajos része, mert valahogy meg is kellene tartanom ezt az állapotot. Csináltam egy cookie-t, és mindig azt vizsgálgatom belépéskor. Nem értek még ehhez, töltöttem már le működő rendszereket, de a kódjukat nem láttam át, nem tudtam átalakítani, hogy átlássam, nem értettem belőle semmit, ezért mindenképp marad a saját rendszerem. Nem nagy forgalmú weboldalt szeretnék, mivel van egy játékszerverem, és annak csinálok weblapot, ill. login rendszert, hogy el tudjam tárolni az adatokat a játékosokról, és azt monitorozni tudjam, magamnak.

Tehát mit ajánlotok, hogyan is álljak neki ennek a rendszernek a kivitelezésével, mivel kezdjek ismerkedni, stb?


2014. júl. 12. 18:22
1 2
 1/11 anonim ***** válasza:

"Csináltam egy cookie-t, és mindig azt vizsgálgatom belépéskor."


Valószínűnek tartom, hogy itt hibáztál óriásit. (Bár nem tudom a konkrét kódot...)

Használj munkamenetet (session), ahogy azt kell.


A másik irdatlan gyakori hiba magánál az SQL lekéréseknél van, hogy nem megfelelően védik őket. Remélem mysqli-t vagy PDO-t használsz, prepared statementekkel. Ez a legbiztosabb megoldás.

2014. júl. 12. 18:31
Hasznos számodra ez a válasz?
 2/11 A kérdező kommentje:

az se tudom, hogy mi az amit leírtál.

lekérdezésem:

$sql = mysql_query("SELECT valami FROM valami");

while ($row = mysql_fetch_array($sql))

{

//ide meg a cucc

}


insert:

$sql = "INSERT INTO valami blablabla..";

mysql_query($sql);

2014. júl. 12. 18:43
 3/11 anonim ***** válasza:

Jó, ezt most töröld ki, és kezdd újra az egészet, ezekre gondolva.

1.)Ne engedj speciális karakter (ctype_alnum())! Ez kb. a problémák felét rögtön megoldja. Ha szeretnél, kezd egy prepared statementeket használni, vagy legalább mysqi_real_escape()-et [kulcsszó: sql-injection].

2.)Hosszúságszabályozás.

3.)Mindig olyan forrást használj, aminek az adatai a szerven vannak, te szabályozod őket, és a felhasználónak nincs közvetlen útja hozzá, mert nem képes végrehajtani a vele kapcsolatos műveleteket, vagy ha ezt teszi, elcseszi a bejelentkezést.

Pl. amiket én használok: session. Alapból cookieban van tárolva az elérési kódja, ami lejár bezáráskor, tehát ha el is lopják, sem tudnak vele különösebben kezdeni valamit.

Cookie: semmire sem jó, csak olyanra, ami a felhasználó érdeke, hogy működjön. Pl. olyan infók átadása, mint hogy melyik oldaladról jön, hogy pl. bejelentkezés után a top.location újratöltődjön-e vagy sem.

IP: hasznos lehet, de mindkettő ellenőrzése szükséges. Bár egy jó proxyt nem lehet kiszűrni, ez csak másodlagos védelem.

Időzár. 12 óra után pá, kidob. Ne feltételen jó, én csak offlineban dobálok ki embereket.

Mysql-használat. Csatold egy session_id-hez, és ellenőriztesd onnan is. Így ha ellopják a session_id-t sem tud bejelentkezni, mert más ip-vel van beregelve.

4.)MD5()

5.)Amiben igazad van: mindig sajátban bízz csak meg.

2014. júl. 12. 19:14
Hasznos számodra ez a válasz?
 4/11 anonim ***** válasza:

"4.)MD5()"


Mára már nem!

Minimum sha1, de még inkább bcrypt.

2014. júl. 12. 19:35
Hasznos számodra ez a válasz?
 5/11 anonim ***** válasza:

Azért még jó az falura némi sóval.

(de való igaz, semmiből nem tart shat használni)

2014. júl. 12. 19:41
Hasznos számodra ez a válasz?
 6/11 A kérdező kommentje:

Különösen a 3. válaszát köszönöm!

Közben az injektálásra már rátaláltam.


Neki is állok átpasztázni mit tudok tenni. :)


Köszönöm a válaszokat! :)

2014. júl. 13. 03:46
 7/11 A kérdező kommentje:
Annyira tetszik hogy a programozásban mindig van valami kihívás. Soha se tudom megunni.
2014. júl. 13. 03:56
 8/11 anonim ***** válasza:
biztos ami biztos: sha1(md5($password)) :D
2014. júl. 13. 03:57
Hasznos számodra ez a válasz?
 9/11 anonim ***** válasza:
a #1-eshez azt azért hozzáfűzném, hogy a google meg a hotmail is cookie-kat használ, szóval annyira nem lehet azért rossz...
2014. júl. 13. 03:59
Hasznos számodra ez a válasz?
 10/11 anonim ***** válasza:
* az #1-hez
2014. júl. 13. 04:45
Hasznos számodra ez a válasz?
1 2

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!