A profi weboldalak hogy azonosítják a felhasználót?
Autodidakta módon tanulok programozni, mindig csak azt, amire épp szükségem van, úgyhogy a tudásom hiányos lehet.
PHP-val első találkozásom az volt, amikor egy nagyon buta beléptetőrendszer működését tanulmányoztam korábbi C-ismereteimre alapozva, ami meg nem volt tiszta, annak utánanéztem. (azóta már dolgoztam PHP-val, szóval már jóval széleskörűbbek az ismereteim)
Az a bizonyos beléptetőrendszer egy txt-ben tárolt asszociatív tömbből olvasta ki a felhasználónevet és a titkosítatlan jelszót, és úgy ahol voltak eltárolta őket a "username" és a "password" sütikben. Na, abban biztos vagyok, hogy a nagyok nem így csinálják.:D
Az odáig tiszta sor, hogy a felhasználói adatok egy adatbázisban kapnak helyet, de, hogy az oldal milyen módon jegyzi meg, ha be vagyunk lépve, arról max tippelni tudok.
Azon agyaltam, hogy ha a sütiben tárolt adatokban csupán a felhasználói adatok a változók (és kizárólag sütik segítségével történik az azonosítás), akkor lopott sütikkel bárki bármikor bárhonnan beléphet.
Akkor az elméletem:
Gyanítom, hogy az általam említett példával szemben csak egy sütit használnak, ami nem is feltétlen áll kapcsolatban a felhasználó adataival, ellenben valami viszonylag hosszú egyszeri kódot tárol (algoritmus természetesen garantálja, hogy ugyanazt a kódot kétszer ne lehessen létrehozni), amit kilépéskor a szerver "elfelejt", így nem lehet vele újból belépni. Mindemellett gondolom, hogy az oldal arról is kap adatot, hogy pontosan milyen eszközről lépnek be.
Ennél jobb megoldást a jelenlegi ismereteimmel nem tudok elképzelni. Van esetleg mégis?
Ezen felül érdekelne még pár dolog, ami ide kapcsolódik:
1. Ha SHA-256-ot használok a jelszó kódolásához, az önmagában elégséges?
2. Hogyan titkosítják a kliens és szerver közötti kommunikációt? (ez most elsősorban a jelszó küldése miatt érdekel)
SESSION: [link]
Egy a Cookie -hez hasonló adat, csak kliens oldalon az adott munkamenetre, kilépésig, böngésző bezárásig érvényes.
"Ha SHA-256-ot használok a jelszó kódolásához, az önmagában elégséges?"
Igen, de bármely hashelős technológia is megfelel egy kis "sózással".
pl.: md5(rot13(xxx#Jelszó#yyy));
"Hogyan titkosítják a kliens és szerver közötti kommunikációt?" -> HTTPS
SSL licensz szükséges hozzá, amit pl domainhez lehet rövid időre ingyen is kérni.
De alap SSL -t már pár ezerért lehet bérelni is, van tárhely ahol már az alapba is benne van.
Köszönöm, nem számítottam ilyen gyors válaszra!
A session megmagyarázza, hogy miért nem találtam soha a tárolt sütik között ilyesmit. Igazából innen jött ez az egész, mert bele akartam nézni a sütikbe, amiknek a neve azt sejteti, hogy belépési adatokat tartalmaz, hogy megnézzem, a nagyok hogy csinálják, de mivel nem találtam semmit, tudtam, hogy valamit nem tudok. :D
Ha jól értem, az SSL titkosításnál a böngésző és a hosting végzi el a piszkos munkát, nekem meg semmi dolgom vele?
Akkor a többiben nem tévedtem? (egyedi egyszer használatos kód, és az eszköz beazonosítása)
És nincs semmi amiről megfeledkeztem, ennyi az egész?
A "keep me logged in" esetében egy jól lekódolt cookie ami segít azonosítani, ez se tartalmaz jelszót, csak max egy user ID -t és egy egyedi azonosítót, amit adatbázisban tárol az adott felhasználóhoz.
Illetve süti lopást elkerülve szoktak IP -t is rögzíteni, ami ha ugyan az a tartomány akkor még elfogadja.
pl. 212.154.110.21 volt az IP -d akkor a 212.154.110.xxx tartományt elfogadja, de mivel mobilok esetén ez is változhat, így még Local Web Storage -be is lehet adatott rakni, így az IP és/vagy az ott tárolt adatok megléte is segít az azonosításban.
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!