PHP-ban elég csekkolni így a bejelentkezést?
Éppen kaptam egy kis projectet ahol át kell migrálnom php5-ről php7-re egy weblapot egy barátomnak meg ellenőrizni a biztonságot.
if (!isset($_SESSION['id'])) //nincs bejelentezve
Így van benne a login csekkolás, ez így elég? Nem vagyok nagy php-s de gondolom a felhasználó (hacker) magától nem tud $_SESSION['id']-t állítani mert azt csak a szerver tud ugye vagy tévedek?
ajj már meg is kaptam privátban minek vállalom el ha nem értek a php-hoz.
Egy barátomnak csinálom ingyen ember!
Nekem suliba tanították a PHP-t, de ritka sz?rul. Így én le is tagadom, hogy értek hozzá. A PHP egy külön világ, nem mondom, hogy erre születni kell, de nem lehet pár hét alatt igazán jól benyalni mindent. És a PHP nem csak abból áll, hogy if-else-while-for meg változók létrehozása, ennél sokkal komplexebb. Meg manapság egyre kevesebb helyen oktatják jól a PHP-t, magyarul meg még rosszabb a helyzet.
Szóval én azt mondom, hogy ha nem vagy biztos a dolgodban akkor hagyd az egészet a francba! Mert akkor csak gányolás lesz belőle, az meg sosem jó.
Elég lehet.
A munkamenet-eltérítés (session hijacking: [link] ) ellen kell védekezned.
De akkor mi az 100% biztonságot ha ez nem, mit nézzek még meg?
----------------
Session_hijacking-ra rákerestem de az elvileg okés itt.
Olvass utána, mit ír az OWASP, az egy igen jó forrás a témában. A session hijackingről pl. ezt: [link]
Vannak cheat sheetjei is, hogy hogy küszöböljünk ki ezt vagy azt, vagy toplisták a különböző támadásokról.
Én inkább JWT tokenek irányába mennék. A PHP elméletileg állapotmentes. Az állapotmentesség azt jelenti, hogyha van több számítógéped, ami kiszolgálja a weblapot, akkor mindegy, melyik számítógép szolgálja ki a felhasználótól érkező kérést, a weblapod működni fog. Ez azért fontos, hogy a szoftvered horizontálisan skálázható legyen - azaz ha megnő a terhelés, te csak új gépeket állítasz üzembe, ellentétben a vertikális skálázással, ahol a meglévő gépbe erősebb CPU-t és több RAM-ot teszel. A hagyományos session-kezelés (a $_SESSION) pont ezzel a horizontális skálázhatósággal megy szembe, ugyanis ha ezt használod, az állapotmentesség megszűnik. A session-adatoknak hála - ami csak az egyik számítógépen érhető el - a weblapod hibásan fog működni, ha a védett tartalom elérésére irányuló request a másik gépre fut be (mivel ott nincsenek meg a session-adatok).
A JWT token erre kínál megoldást, mivel horizontálisan skálázható rendszerekben történő használatra lett kitalálva. Bejelentkezéskor a kliensnek adsz egy általad digitálisan aláírt tokent (ami egy kliens által is olvasható JSON-dokumentum). A digitális aláírásnak hála tudod, hogy a JSON-dokumentum nem módosított és tőled származik - ha valaki megpróbálja hamisítani, a hitelesítésnél ki fog derülni, hogy az aláírás hamisított.
Szerintem megfogalmazom máshogy a kérdést mert nagyon eltértünk.
Ti hogy csekkolnátok a bejelntkezést?
Én Express-es vagyok ott tök máshogy van (Passport-al), sokkal biztonságosabbnak is érzem, mint ezt egy egy soros id létezés csekkolást.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!