Új hozzászólás Aktív témák
-
DNReNTi
őstag
válasz
tothjozsi96 #16502 üzenetére
A biztonságos beléptetés valamint főleg a felhasználói adatok biztonságos kezelése elég összetett dolog, írhatnék délig, mire leírom az egésszel kapcsolatban a véleményemet.
Mivel az idő az ellenségem, rövidre fogom. Ami már kiderült itt korábban is a felhasználói adatok sütiben tárolása a lehető legrosszabb megoldás, ha ráadásul még a jelszót is sütiben tárolod (ahogy korábban írtad) az pedig egyenesen kötél általi halált ér.
Leírom az én alap megoldásom, aztán majd a többiek kijavítják vagy kiegészítik, szerintem ez egy weboldal esetén megfelelően biztonságos:
A felhasználók az alap adataikon kívül regisztrációkor kapnak egy mondjuk 20 számjegy hosszú unique random számsort, amely adatbázisban a felhasználó táblában van rögzítve. Amikor a felhasználó a felhasználónév és jelszó párossal helyesen belép, akkor a $_SESSION[] változóban eltárolom ezt a random azonosítót. Innentől a böngésző bezárásáig ez alapján azonosítom a felhasználót. A számsor unique, szóval ugyan úgy használhatom erre a célra mint mondjuk az id-t. Ha lehetőséget adsz arra, hogy a felhasználó belépve maradjon, akkor ezt a számsort nyugodtan tárolhatod sütiben is, így amikor a felhasználó újra meglátogatja az oldalt, a süti tartalmát beállítod a session változóba és minden megy tovább ahogy eddig. Kilépéskor a sütit "lejáratod" a sessiont unset()-eled.Miért számsor és nem string?
Mert az SQL lekérdezés gyorsabb számszerű ekvivalenciára mint szöveges egyezésre.Miért jó ez megoldás?
Mert ha még valaki, valahogyan hozzá is jutna, ehhez az azonosítóhoz (pl. a sütiból), abban semmilyen logikai minta nincs, ami alapján a többi felhasználó azonosítója megszerezhető lenne.Hogyan lehet ez még biztonságosabb?
Ennek a level 2 változata, ha random azonosítót minden belépéskor generálod és mented el a felhasználóhoz, ez viszont félmegoldás, mivel ha a felhasználó miközben be van lépve, belép egy másik eszközről, akkor az eredeti munkamentét el fogja veszíteni.Hogyan akadályozható ez meg?
Egyszerűen, level 2 helyett egyből a level 3-mal. Ugyan úgy egyedi azonosítót generálsz belépéskor, de ezt már nem a felhasználó táblában, hanem egy külön a belépéseket kezelő táblában rögzíted. Fontos, itt nem elég csak a random azonosítókat és a felhasználó id-kat tárolni, az egyértelmű azonosítás érdekében környezeti változók mentésére is szükség van. Kilépéskor a tárolt munkamenet célszerű az adatbázisból eldobni, így nem lesz tele szeméttel, továbbá érdemes időközönként háttérfolyamattal takarítani, teszem azt mondjuk a 48 óránál régebbi munkameneteket eldobni.Röviden ennyi.
Aki nem ért egyet pls javítson ki.
Új hozzászólás Aktív témák
- Debrecen és környéke adok-veszek-beszélgetek
- Futás, futópályák
- Gyúrósok ide!
- PlayStation 5
- Építő/felújító topik
- Huawei Watch GT 6 és GT 6 Pro duplateszt
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Forza sorozat (Horizon/Motorsport)
- gban: Ingyen kellene, de tegnapra
- ASZTALI GÉP / ALKATRÉSZ beárazás
- További aktív témák...
- Gamer PC-Számítógép! Csere-Beszámítás! R5 5500 / RX 6700XT / 32GB DDR4 / 1TB SSD
- Okostelefonok javítása, akku, törött kijelző, töltőcsatlakozó csere, ODA-VISSZA FUTÁRRAL IS!
- A legolcsóbb!!! Dell Latitude 5470 6. gen. core i5-ös notebook olcsón!!!! AkciÓÓ!
- HP A8-as Radeon VGA kártyás notebook leárazás!!! AkciÓÓ!
- Külső táp nélküli Asus GeForce GTX 1050Ti 4 GB ! AkciÓÓ!
- HIBÁTLAN iPhone 12 mini 128GB Green -1 ÉV GARANCIA - Kártyafüggetlen, MS3401
- Keresünk dokkolókat
- Gamer PC-Számítógép! Csere-Beszámítás! R5 5500 / RX 5700XT 8GB / 32GB DDR4 / 500GB SSD
- Bomba ár! Lenovo ThinkPad P1 G2 - i7-9850H I 16/256SSD - 32/1TB I 15,6" FHD I W11 I Cam I Gari!
- BESZÁMÍTÁS! MSI X370 R5 2600 16GB DDR4 512GB SSD GTX 970 4GB Zalman Z9 Neo FSP 600W
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest