Skip to content
SilverPC Blog

SilverPC Blog

Tech

Amikor a laptop és a TV nem beszélnek egy nyelvet: Így oldd meg a kapcsolódási problémát!
  • Tech

Amikor a laptop és a TV nem beszélnek egy nyelvet: Így oldd meg a kapcsolódási problémát!

2025.08.10.
A megnyithatatlan D: meghajtó rejtélye: Így férj hozzá újra az adataidhoz!
  • Tech

A megnyithatatlan D: meghajtó rejtélye: Így férj hozzá újra az adataidhoz!

2025.08.10.
Két hálózat, egy gép: A vezeték nélküli és vezetékes kapcsolat egyidejű használatának trükkjei
  • Tech

Két hálózat, egy gép: A vezeték nélküli és vezetékes kapcsolat egyidejű használatának trükkjei

2025.08.10.
Váratlanul megszakadt az RDP kapcsolat? Azonosítsuk a titkosítási hibát!
  • Tech

Váratlanul megszakadt az RDP kapcsolat? Azonosítsuk a titkosítási hibát!

2025.08.10.
A néma csend titka: Miért nem ismeri fel a Windows 10 a hangkártyát, és mit tehetsz ellene?
  • Tech

A néma csend titka: Miért nem ismeri fel a Windows 10 a hangkártyát, és mit tehetsz ellene?

2025.08.10.
PC-d váratlanul leáll? Légy te a detektív – útmutató a hiba okának kiderítéséhez
  • Tech

PC-d váratlanul leáll? Légy te a detektív – útmutató a hiba okának kiderítéséhez

2025.08.10.

Express Posts List

A Casimir-effektus: Amikor a semmiből erő születik – a kvantumfizika egyik legfurcsább jelensége
  • Tudomány

A Casimir-effektus: Amikor a semmiből erő születik – a kvantumfizika egyik legfurcsább jelensége

2025.08.10.
Képzeld el, hogy a semmi, a vákuum, amiről azt gondolnánk, hogy üres, valójában tele van élettel, energiával...
Bővebben Read more about A Casimir-effektus: Amikor a semmiből erő születik – a kvantumfizika egyik legfurcsább jelensége
A talajerózió tényleg a sivatagosodás előszobája? A folyamat, ami homokká változtatja a termőföldet
  • Tudomány

A talajerózió tényleg a sivatagosodás előszobája? A folyamat, ami homokká változtatja a termőföldet

2025.08.10.
Minden prokarióta egysejtű? A meglepő igazság a legegyszerűbb élőlényekről
  • Tudomány

Minden prokarióta egysejtű? A meglepő igazság a legegyszerűbb élőlényekről

2025.08.10.
Több mint szavanna: A trópusi övezet füves térségeinek rejtett arca és éghajlata
  • Egyéb

Több mint szavanna: A trópusi övezet füves térségeinek rejtett arca és éghajlata

2025.08.10.
Ne csak literben gondolkodj: 1 barel kőolaj valójában ennyi tonnát nyom a mérlegen
  • Tudomány

Ne csak literben gondolkodj: 1 barel kőolaj valójában ennyi tonnát nyom a mérlegen

2025.08.10.
Primary Menu
  • Főoldal
  • Hírek
  • Tech
  • Hardver
  • Szoftver
  • Mobil
  • Gamer
  • Játék
  • Web
  • Tudomány
  • Egyéb
  • Web

Védett tartalmak a weben: építs saját login rendszert a HTML oldaladba

2025.08.09.

Üdv a digitális dzsungelben! 🌴 Ma már alig létezik olyan weboldal, ahol ne lenne valamilyen interaktív funkció, vagy ne rejtőzködne valami különleges tartalom. Gondolj csak egy hírportálra, egy online oktatási platformra, vagy épp egy webshopra – szinte mindegyiknél találkozunk a regisztráció és bejelentkezés varázsszavaival. De mi van akkor, ha te is szeretnél védett tartalmakat kínálni a látogatóidnak, és nem akarsz egy nagydarab CMS-t (tartalomkezelő rendszert) használni? Nos, akkor jó helyen jársz! Ma arról lesz szó, hogyan építhetsz fel egy saját, masszív login rendszert a HTML oldaladba. Kapaszkodj meg, kalandra indulunk! 🚀

Miért Van Szükség Védett Tartalomra és Egy Login Rendszerre? 🤔

Elsőre talán kézenfekvőnek tűnik a válasz, de érdemes egy kicsit mélyebben belemerülni. Miért is akarunk valaha is korlátozni a hozzáférést a remekbe szabott tartalmunkhoz? Nézzük a főbb okokat:

  • Monetizáció és Prémium Tartalom: Ha prémium cikkeket, exkluzív videókat, szoftvereket, vagy bármilyen digitális terméket kínálsz, amit fizetésért szeretnél elérhetővé tenni, akkor elengedhetetlen egy bejelentkező mechanizmus. Ez az út a fizetős előfizetésekhez, egyszeri vásárlásokhoz. Képzeld el, hogy a gondosan elkészített online kurzusodat bárki ingyen letölti! 💸 Nos, erre a login rendszer a megoldás.
  • Személyre Szabott Élmény: Egyedi profilok, személyes adatok tárolása, korábbi tevékenységek nyomon követése – mindez a felhasználói élmény javítását szolgálja. Ha a webhelyed „emlékszik” a látogatójára, sokkal jobb és relevánsabb szolgáltatást tud nyújtani. Gondolj csak egy webshopra, ahol a kosarad tartalmát vagy a korábbi rendeléseidet látod. Ez egy hatalmas felhasználói élmény növelő faktor! ✨
  • Adatvédelem és Biztonság: Ha a weboldalad érzékeny felhasználói adatokat kezel (például e-maileket, címeket, vagy akár bankkártyaadatokat), akkor a jogosulatlan hozzáférés elleni védelem nem csupán opció, hanem jogi és erkölcsi kötelesség. Egy robusztus azonosító rendszer elengedhetetlen a felhasználói adatok védelméhez. 🛡️
  • Közösségépítés: Fórumok, hozzászólási rendszerek, privát üzenetek – mindezek regisztrációhoz kötöttek. Egy zárt közösség sokkal aktívabb és interaktívabb lehet, hiszen a tagok azonosíthatóak, és felelősséget vállalhatnak a tetteikért. Ez egy nagyszerű módja annak, hogy elkötelezett felhasználókat gyűjts magad köré. 🗣️

Láthatod, a bejelentkezési funkció nem csupán egy technikai feature, hanem egy stratégiai eszköz, ami új lehetőségeket nyit meg a weboldalad számára. De miért építsük magunk, ha annyi kész megoldás létezik?

A Saját Login Rendszer Építésének Előnyei és Hátrányai 🤔

Oké, be kell vallanom, ez nem egy villámgyors projekt lesz, amit péntek este kezdesz és szombat reggelre kész vagy. Viszont van egy sor előnye, ami miatt megfontolandó a saját login rendszer megalkotása:

Előnyök: 👍

  • Teljes Kontroll és Testreszabhatóság: Nincs „black box”. Minden egyes sor kódot te írsz, te értesz, te alakítasz. Pontosan azt a funkcionalitást kapod, amire szükséged van, és semmi olyat, amire nincs. Nincs felesleges kód, nincsenek nem használt pluginok. Ez óriási szabadság! 🎨
  • Teljesítmény: Egy jól megírt, egyedi megoldás gyakran sokkal hatékonyabb lehet, mint egy általános CMS bejelentkező modulja. Nincs felesleges adatbázis-lekérdezés, nincsenek plusz scriptek, amik lassítanák az oldalt.
  • Biztonság: Bár paradoxnak tűnhet, ha értesz hozzá, egy saját rendszer biztonságosabb lehet, mert pontosan tudod, mi történik a motorháztető alatt. Nincsenek ismeretlen biztonsági rések harmadik féltől származó bővítményekben. (De ehhez érteni kell, erre még visszatérünk!)
  • Tudás és Tapasztalat: Egy ilyen projekt során rengeteget tanulsz. Ez a fajta tudás aranyat ér a fejlesztői piacon. Fejlődsz adatbázis-kezelésben, szerveroldali programozásban, biztonsági protokollokban. Ez egy igazi képzési program a gyakorlatban. 🧠

Hátrányok: 👎

  • Időigényes: Elképesztően sok időt vehet igénybe, különösen ha még kezdő vagy. A tervezés, a kódolás, a tesztelés – mindez napokat, sőt heteket is elrabolhat.
  • Tudást Igényel: Nem úszod meg egy kis HTML-lel és CSS-sel. Szükséged lesz szerveroldali programozási nyelvre (pl. PHP, Python, Node.js), adatbázis-kezelésre (SQL), és elengedhetetlen a webbiztonsági alapelvek ismerete.
  • Biztonsági Kockázatok: Ha nem vagy kellően tájékozott a biztonsági résekről, könnyen hibázhatsz, és sebezhető rendszert hozhatsz létre. Egy rosszul megírt login rendszer nagyobb kárt okozhat, mint amennyi hasznot hajt. Ez a legkritikusabb pont! 🚨
  • Karbantartás: A rendszer elkészültével sem dőlhetsz hátra. Frissítened kell, javítanod a hibákat, és lépést tartanod a technológiai fejlődéssel.

Szóval, megéri-e a befektetett energia? Szerintem igen, ha komolyan gondolod a webfejlesztést, és valami egyedit, hatékonyt és teljesen kontrollálhatót akarsz létrehozni. De nézzük, mik az alapvető hozzávalók!

Alapvető Hozzávalók: Mit Hova? 🛠️

Egy login rendszer nem csak a HTML oldalból áll, sokkal több rétege van, mint egy hagymának. 🧅 Íme, mire lesz szükséged:

  1. Frontend – Amit a Felhasználó Lát:
    • HTML: Ez a csontváz. Itt lesznek az űrlapok a felhasználónév/email és jelszó bevitelére, a gombok, a hibaüzenetek. Egyszerű, letisztult, és funkcionális.
    • CSS: A smink. A HTML-lel létrehozott elemeket teszi széppé, felhasználóbaráttá. Gondolj csak egy stílusos bejelentkező oldalra! 💅
    • JavaScript: Az agy (kliens oldalon). Kliens oldali validációra (pl. üres mező ellenőrzése), interaktív elemekre, vagy AJAX kérések küldésére használjuk, hogy dinamikusan töltsünk be tartalmakat a szerverről.
  2. Backend – Ami a Háttérben Zajlik: Ez a szív és lélek. Itt történik a felhasználói adatok feldolgozása, ellenőrzése, és a biztonsági műveletek.
    • Programozási Nyelv: Ez a motor. Választhatsz többféle népszerű nyelv közül, mint például:
      • PHP: Klasszikus webes nyelv, rengeteg dokumentációval és közösséggel. Kezdőknek is barátságos, és szinte bármilyen tárhelyen elérhető.
      • Python (Django/Flask): Egyre népszerűbb, letisztult szintaxis, kiválóan alkalmas gyors fejlesztésre. A Django egy komplett keretrendszer, ami sok mindent előkészít.
      • Node.js (Express): Ha szereted a JavaScriptet, akkor ez a te választásod lehet a szerver oldalon is. Valós idejű alkalmazásokhoz is kiváló.
      • Ruby (Rails): Elegáns, produktív, de talán kevésbé elterjedt hazánkban.

      Melyiket válaszd? Az attól függ, melyikkel vagy már ismerős, vagy melyiket szeretnéd megtanulni. Kezdőként a PHP vagy a Python lehet a legjobb belépő. Én most a PHP-t fogom példának használni, mert nagyon sok helyen elérhető, és könnyű vele elindulni. 💡

    • Adatbázis: Ez a memóriánk. Ide mentjük a felhasználók adatait, beleértve a hashelt jelszavakat.
      • MySQL/MariaDB: A leggyakoribb választás webes alkalmazásokhoz. Relációs adatbázis, táblákba szervezett adatokkal.
      • PostgreSQL: Erősebb, robusztusabb alternatíva, komplexebb lekérdezésekhez is ideális.
      • MongoDB (NoSQL): Ha dokumentum alapú adatbázisra van szükséged, és a rugalmasság a fontos.

      Egy login rendszerhez a MySQL vagy a MariaDB tökéletes választás, egyszerűen kezelhető, és stabil. Szükséged lesz legalább egy users táblára, benne oszlopokkal, mint id, username, email, password_hash, created_at, stb.

    • Webszerver: Ez a postás. Fogadja a kéréseket a böngészőktől, és továbbítja a backend kódodnak.
      • Apache: Széles körben elterjedt, könnyen konfigurálható.
      • Nginx: Gyorsabb, hatékonyabb magas terhelés esetén.

      A legtöbb tárhelyen Apache fut, így ezzel nem nagyon lesz gondod. A LAMP (Linux, Apache, MySQL, PHP) stack egy örök klasszikus, amivel könnyedén bele lehet vágni.

  Samsung telefonok: Az ujjlenyomat-olvasó csak izzadt vagy hideg kézzel nem működik? A szenzor érzékenységének határai

A Login Rendszer Működési Elve Lépésről Lépésre 🚶‍♀️🚶‍♂️

Most, hogy megvan a bevásárlólistánk, nézzük meg, hogyan épül fel a bejelentkezés folyamata, logikusan, lépésről lépésre. Ez a legizgalmasabb rész, higgyétek el! 😍

1. Regisztráció (Felhasználói Fiók Létrehozása) 📝

Ez az első kapu, ahol a felhasználó belép a rendszerbe. Ennek a funkciónak rendkívül biztonságosnak kell lennie!

  1. Űrlap megjelenítése (HTML): Egy HTML űrlap, ahol a felhasználó megadja a választott felhasználónevét (vagy email címét), jelszavát, és a jelszó ismétlését. Kérhetünk még email címet, teljes nevet stb.
  2. Kliens Oldali Validáció (JavaScript): Itt ellenőrizhetjük, hogy a mezők nincsenek-e üresen hagyva, vagy hogy a jelszavak megegyeznek-e. Ez csak egy kényelmi funkció, a felhasználói élményt javítja, de SOSEM helyettesíti a szerver oldali validációt! (Egy rosszindulatú felhasználó egyszerűen kikapcsolhatja a JavaScriptet a böngészőjében.)
  3. Adatok Küldése a Szerverre: Az űrlap adatait HTTP POST kéréssel elküldjük a szerverre (egy PHP/Python/Node.js szkripthez).
  4. Szerver Oldali Validáció (PHP/Backend Nyelv): Ez a kritikus lépés! Itt ellenőrizzük:
    • Minden szükséges mező ki van-e töltve.
    • A felhasználónév/email cím egyedi-e (már létezik-e az adatbázisban).
    • A jelszó megfelel-e a biztonsági előírásoknak (minimális hossz, speciális karakterek, számok).
    • A jelszó és a jelszó megerősítése megegyezik-e.
    • Az email cím formátuma érvényes-e.

    Ha bármelyik ellenőrzés sikertelen, hibaüzenetet küldünk vissza a felhasználónak.

  5. Jelszó Hashelése és Sózása: Az egyik legfontosabb biztonsági lépés! SOSEM tároljuk a jelszavakat nyílt szövegben az adatbázisban! Ehelyett egy egyirányú hash függvényt alkalmazunk rájuk, pl. password_hash() PHP-ban (ami alapból bcrypt-et vagy argon2-t használ). Fontos, hogy mellé egy „sót” (egy véletlenszerű stringet) is adjunk, hogy még az azonos jelszavaknak is eltérő hash értéke legyen. Ez véd a szivárgások és a „rainbow table” támadások ellen. 🌈 Nem vicc, ez életmentő lehet!
  6. Adatok Mentése az Adatbázisba: Ha minden rendben, a felhasználó adatait (felhasználónév, email, a hashelt jelszó stb.) beírjuk az adatbázisba. Használj prepared statements-et SQL injekció ellen! Ez kritikus!
  7. Sikerüzenet és/vagy Email Megerősítés: Tájékoztatjuk a felhasználót a sikeres regisztrációról. Opcionálisan, de erősen ajánlott egy aktivációs emailt küldeni egy egyedi linkkel, amit a felhasználónak meg kell erősítenie, mielőtt bejelentkezhet. Ez segít az email címek validálásában és a spam elkerülésében. 📧

2. Bejelentkezés (Azonosítás) 🔑

Ez az a pont, ahol a regisztrált felhasználó hozzáfér a védett tartalomhoz.

  1. Űrlap megjelenítése (HTML): Egy egyszerű űrlap felhasználónév/email és jelszó mezőkkel.
  2. Adatok Küldése a Szerverre: A beírt adatokat HTTP POST kéréssel küldjük a szerverre.
  3. Szerver Oldali Validáció:
    • Ellenőrizzük, hogy a mezők nincsenek-e üresen.
    • Megkeressük a felhasználót az adatbázisban a megadott felhasználónév (vagy email) alapján.
    • Ha a felhasználó nem létezik, vagy az email nincs megerősítve, megfelelő (de nem túl sokat eláruló!) hibaüzenetet adunk. Ne írd ki, hogy „Hibás felhasználónév” vagy „Hibás jelszó”! Csak annyit: „Hibás felhasználónév vagy jelszó.” Ez segít a brute-force támadások kivédésében. 😉
  4. Jelszó Ellenőrzése: Lekérjük az adatbázisból a felhasználóhoz tartozó hashelt jelszót. Ezt az adatbázisból kiolvasott hashet összehasonlítjuk a felhasználó által megadott jelszóval, ugyanazzal a hash függvénnyel, amivel a regisztrációkor hasheltük (pl. PHP password_verify()). Ha egyeznek, a jelszó helyes. 🎉
  5. Sessiók és Cookiek Kezelése: Ha a bejelentkezés sikeres, létrehozunk egy munkamenetet (session) a szerveren. Ez egy egyedi azonosító (session ID), amit elmentünk egy cookie-ban a felhasználó böngészőjében. Amikor a felhasználó a védett oldalakra navigál, a böngészője elküldi ezt a cookie-t a szervernek, ami a session ID alapján azonosítja a felhasználót, és engedélyezi a hozzáférést.
    • Fontos: A session ID-t HTTP-only cookie-ként tárold, hogy JavaScript ne férjen hozzá, ezzel védve az XSS támadások ellen.
    • Használj Secure flaget is, hogy a cookie csak HTTPS kapcsolaton keresztül küldődjön el.
  6. Átirányítás Védett Oldalra: A sikeres bejelentkezés után átirányítjuk a felhasználót a védett tartalomra (pl. dashboard.php).

3. Kijelentkezés 🚪

Ez tűnik a legegyszerűbbnek, de itt is lehet hibázni!

  1. Kijelentkezés Link: Egy gomb vagy link, amire kattintva a felhasználó kijelentkezhet.
  2. Szerver Oldali Művelet: Amikor a felhasználó rákattint, egy kérés érkezik a szerverre. Itt a session (munkamenet) adatait töröljük a szerverről, és a session cookie-t is érvénytelenítjük a felhasználó böngészőjéből.
  3. Átirányítás: Átirányítjuk a felhasználót a bejelentkező oldalra vagy a főoldalra.

Fontos, hogy a kijelentkezés egy POST kérés legyen, és CSRF tokennel védett legyen, hogy ne lehessen könnyen kikényszeríteni mások kijelentkezését! (Erről még szó lesz a biztonságnál.)

4. Jelszó Visszaállítás (Elfelejtett Jelszó) 📧🔒

Ez egy elengedhetetlen funkció, ha nem akarod, hogy a felhasználók kétségbeesett telefonhívásokkal bombázzanak. 😂

  1. Kérés küldése: A felhasználó megadja az email címét.
  2. Token generálás: A szerver generál egy egyedi, időkorlátos tokent, amit elment az adatbázisba a felhasználóhoz rendelve.
  3. Email küldés: Elküld egy emailt a felhasználónak egy linkkel, ami tartalmazza ezt a tokent. Pl. yourwebsite.com/reset_password.php?token=xyz123.
  4. Token validáció: A felhasználó a linkre kattintva eljut egy oldalra, ahol a rendszer ellenőrzi a token érvényességét és lejáratát.
  5. Új jelszó beállítás: Ha a token érvényes, a felhasználó megadhatja az új jelszavát, amit szintén hashelünk és sózunk, majd frissítjük az adatbázisban. A token ezután érvénytelenné válik.

Biztonság, Biztonság, Biztonság! A Legfontosabb Szempontok 🚨

Ahogy már említettem, a biztonság a legkritikusabb pont egy saját login rendszer építésekor. Egy rosszul megírt kód súlyos károkat okozhat. Íme, mire figyelj oda, mint a szemed fényére:

  • Jelszó Hashelés és Sózás (Kötelező!): Már említettem, de nem lehet eléggszer hangsúlyozni. Használj bcrypt, scrypt, vagy Argon2 algoritmusokat. A PHP password_hash() és password_verify() funkciói a legjobb választás. SOHA NE HASZNÁLJ MD5-ÖT VAGY SHA1-ET JELSZÓ HASHELÉSRE! Ezek régóta elavultak és feltörhetőek! 🙅‍♀️
  • SQL Injection Elleni Védelem: Ez az egyik leggyakoribb és legveszélyesebb támadási forma. Győződj meg róla, hogy az adatbázis-lekérdezéseid mindig prepared statements-eket használnak (pl. PDO a PHP-ban), amik automatikusan sanitálják a felhasználói bemenetet. Ez megakadályozza, hogy egy támadó rosszindulatú SQL kódot szúrjon be az űrlapmezőkbe, és ezáltal hozzáférjen az adatbázishoz. ✅
  • XSS (Cross-Site Scripting) Elleni Védelem: Soha ne jeleníts meg felhasználói bemenetet anélkül, hogy ne szűrnéd meg. A támadók rosszindulatú JavaScript kódot szúrhatnak be, ami ellophatja a felhasználók cookie-jait vagy átirányíthatja őket. Használj HTML entitásokat (pl. htmlspecialchars() PHP-ban) minden olyan adatnál, amit a böngészőben megjelenítesz. 🧹
  • CSRF (Cross-Site Request Forgery) Tokenek: Képzeld el, hogy egy támadó rávesz valakit, hogy egy linkre kattintson, ami egy kijelentkezési kérést küld a te oldaladra, miközben a felhasználó be van jelentkezve. A CSRF tokenek ezt akadályozzák meg. Minden kényes művelethez (bejelentkezés, kijelentkezés, jelszóváltás, adatfrissítés) generálj egy egyedi, véletlenszerű tokent, és add hozzá az űrlaphoz egy rejtett mezőként. A szerver oldalon ellenőrizd, hogy a beküldött token megegyezik-e a szerveren tárolttal. 👍
  • HTTPS Mindenhol (SSL/TLS): Ez nem opcionális, hanem kötelező! A HTTPS titkosítja a böngésző és a szerver közötti kommunikációt, megakadályozva, hogy a támadók lehallgassák a felhasználóneveket és jelszavakat. A Let’s Encrypt ingyenes SSL tanúsítványokat biztosít. Szerezd be! 🔒
  • Session Hijacking Elleni Védelem: A session ID-knek véletlenszerűnek és nehezen kitalálhatónak kell lenniük. Tárold őket szerver oldalon, és soha ne tedd ki őket URL-ben. Használj session_regenerate_id()-t bejelentkezés után, hogy ne lehessen fix session ID-t „ellopni”. Ellenőrizd az IP címet vagy a user agent-et minden kérésnél – ha változik, érvénytelenítsd a sessiont.
  • Brute-Force Támadások Kivédése: Korlátozd a sikertelen bejelentkezési próbálkozások számát egy adott IP címről vagy felhasználónévtől. Ideiglenesen zárd ki az adott IP-t, vagy adj hozzá CAPTCHA-t a sok sikertelen próbálkozás után. (Pl. Google reCAPTCHA) 🤖
  • Megfelelő Hibaüzenetek: Ahogy említettem, ne adj túl sok információt a támadóknak. Csak annyit mondj: „Hibás felhasználónév vagy jelszó.” Ne áruld el, hogy a felhasználónév létezik-e, de a jelszó rossz, vagy fordítva.
  • Fizikai és Adatbázis Biztonság: Győződj meg róla, hogy a szervered fizikailag biztonságos, és az adatbázis felhasználója csak a szükséges jogokkal rendelkezzen (azaz ne legyen root joggal!).
  • Kód Audit: Ha teheted, kérj meg egy tapasztaltabb fejlesztőt, hogy nézze át a kódodat. Négy szem többet lát! 👀
  Windows 10 leselejtezése: Visszatér a Windows 8.1 vagy marad az új rendszer?

Gyakori Hibák és Hogyan Kerüljük El Őket 🤦‍♂️

Néhány hiba, amit a kezdők (és néha a haladók is!) elkövetnek:

  • Jelszavak tárolása nyílt szövegben vagy gyenge hash algoritmussal: Ez a legnagyobb bűn! Ha feltörik az adatbázisod, minden jelszó azonnal láthatóvá válik. Soha ne tedd!
  • Kliens oldali validációra hagyatkozás: Mindig, ismétlem, mindig végezz szerver oldali validációt. A kliens oldali validáció csak a felhasználói élményt javítja, nem a biztonságot.
  • Hibaüzenetek, amelyek túl sok információt szolgáltatnak: „A felhasználónév nem létezik” – ez remek segítség egy támadónak, hogy megtudja, mely felhasználónevek léteznek a rendszerben. Inkább maradj a homályos „Hibás belépési adatok” üzenetnél.
  • Nincs HTTPS: Egy weboldal bejelentkezési funkcióval HTTPS nélkül olyan, mintha nyitott ablaknál kiabálnál jelszavakat egy forgalmas utcán. 🤯
  • Nincs session megsemmisítés kijelentkezéskor: Ha a felhasználó kijelentkezik, a sessionjét azonnal meg kell szüntetni a szerveren is, nem csak a cookie-t kell törölni a böngészőből. Különben a session ID még érvényes maradhat, és egy támadó felhasználhatja.
  • Hardkódolt jelszavak vagy API kulcsok a kódban: Soha ne írj érzékeny adatokat közvetlenül a kódba! Használj környezeti változókat vagy biztonságos konfigurációs fájlokat.

Kód Példák és Minta Fájlok (Koncepció) 💻

Nem fogom itt leírni a teljes kódot, mert az egy könyv lenne, de adok egy kis ízelítőt, hogyan nézhet ki a dolog.

HTML bejelentkező űrlap (login.html):


<!DOCTYPE html>
<html lang="hu">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Bejelentkezés</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <div class="login-container">
        <h2>Bejelentkezés</h2>
        <form action="login.php" method="POST">
            <label for="username">Felhasználónév vagy Email:</label>
            <input type="text" id="username" name="username" required>

            <label for="password">Jelszó:</label>
            <input type="password" id="password" name="password" required>

            <!-- CSRF Token ide jönne -->
            <input type="hidden" name="csrf_token" value="<?php echo generate_csrf_token(); ?>">

            <button type="submit">Bejelentkezés</button>
        </form>
        <p>Nincs még fiókod? <a href="register.html">Regisztrálj itt!</a></p>
        <p><a href="forgot_password.html">Elfelejtett jelszó?</a></p>
    </div>
</body>
</html>

Adatbázis tábla struktúra (SQL):


CREATE TABLE users (
    id INT(11) AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL UNIQUE,
    email VARCHAR(100) NOT NULL UNIQUE,
    password_hash VARCHAR(255) NOT NULL,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    is_active BOOLEAN DEFAULT FALSE, -- pl. email megerősítéshez
    reset_token VARCHAR(255) NULL,
    reset_token_expires_at DATETIME NULL
);

PHP pszeudókód bejelentkezéshez (login.php – nagyon egyszerűsített!):


<?php
session_start(); // Session indítása
require_once 'database.php'; // Adatbázis kapcsolat

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // CSRF token ellenőrzés (nagyon fontos!)
    // if (!isset($_POST['csrf_token']) || $_POST['csrf_token'] !== $_SESSION['csrf_token']) {
    //     die("CSRF támadás észlelve!");
    // }

    $username_or_email = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING);
    $password = filter_input(INPUT_POST, 'password', FILTER_SANITIZE_STRING);

    if (empty($username_or_email) || empty($password)) {
        // Hiba: üres mezők
        header("Location: login.html?error=empty_fields");
        exit();
    }

    try {
        $stmt = $pdo->prepare("SELECT id, username, password_hash, is_active FROM users WHERE username = :user_or_email OR email = :user_or_email");
        $stmt->bindParam(':user_or_email', $username_or_email);
        $stmt->execute();
        $user = $stmt->fetch(PDO::FETCH_ASSOC);

        if ($user && password_verify($password, $user['password_hash'])) {
            if (!$user['is_active']) {
                // Hiba: Fiók nem aktív (pl. email megerősítés hiányzik)
                header("Location: login.html?error=account_not_active");
                exit();
            }

            // Bejelentkezés sikeres!
            session_regenerate_id(true); // Új session ID generálása biztonsági okokból
            $_SESSION['user_id'] = $user['id'];
            $_SESSION['username'] = $user['username'];
            
            header("Location: dashboard.php"); // Átirányítás védett oldalra
            exit();
        } else {
            // Hiba: Hibás felhasználónév vagy jelszó (általános üzenet!)
            header("Location: login.html?error=invalid_credentials");
            exit();
        }
    } catch (PDOException $e) {
        // Hiba kezelése (adatbázis hiba)
        error_log("Database error: " . $e->getMessage()); // Naplózás
        header("Location: login.html?error=db_error");
        exit();
    }
}
?>

Ez csak egy nagyon leegyszerűsített vázlat, a valóságban sokkal több hibakezelést és biztonsági ellenőrzést igényelne! 😇

Záró Gondolatok: Megéri-e a Fáradságot? 🏆

Elérkeztünk az utunk végére. Ahogy láthatod, egy saját login rendszer kiépítése nem kismiska feladat. Olyan, mint egy digitális ház építése: nem elég falakat húzni, tető és alap is kell, ráadásul szigetelés és riasztórendszer is elengedhetetlen! 😂 Viszont, ha hajlandó vagy beletenni az időt és energiát, a jutalom óriási lehet.

Egy ilyen projekt során nem csupán egy működő rendszert hozol létre, hanem egy rakás értékes tudásra teszel szert. Megérted a webes alkalmazások működését a legmélyebb szinten, és olyan készségeket sajátítasz el, amik felbecsülhetetlenek a modern digitális világban. Ez egy valódi erőpróba, de cserébe igazi szakértővé válhatsz. 💪

Mikor érdemes belevágni? Ha a teljes kontroll a cél, ha tanulni akarsz, és ha valami egészen egyedit szeretnél alkotni, ami pontosan a te igényeidre szabott. Ha viszont gyorsan kell egy egyszerű login funkció, és nem akarsz bajlódni a mélyebb részletekkel, akkor egy kész CMS (pl. WordPress) vagy egy SaaS (Software as a Service) autentikációs megoldás (pl. Auth0, Firebase Auth) lehet a jobb választás. Nincs szégyen abban, ha felismered a korlátaidat, vagy a projekt igényeit. A profik is gyakran használnak külső könyvtárakat vagy szolgáltatásokat! ☝️

De ha a kihívást keresed, és nem félsz belevágni, akkor hajrá! Kezdj el apró lépésekkel, tesztelj mindent alaposan, és soha ne hanyagold el a biztonságot. Sok sikert a kódoláshoz! 😊 És ne feledd: a legjobb fejlesztő az, aki folyamatosan tanul és fejlődik. Most már megvan a tudás, hogy elindulj ezen az úton. Go for it! 🚀

adatbázis autentikáció biztonság HTML login rendszer MySQL PHP session kezelés webbiztonság webfejlesztés
Megosztás Facebookon Megosztás X-en Megosztás Messengeren Megosztás WhatsApp-on Megosztás Viberen

Vélemény, hozzászólás? Válasz megszakítása

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

Kapcsolódnak

HTML vagy CSS? Ne válassz, értsd meg! A két technológia elválaszthatatlan kapcsolata
  • Web

HTML vagy CSS? Ne válassz, értsd meg! A két technológia elválaszthatatlan kapcsolata

2025.08.09.
Így gyerekjáték 3 kép egysorba helyezése HTML segítségével
  • Web

Így gyerekjáték 3 kép egysorba helyezése HTML segítségével

2025.08.09.
Bekezdés behúzása HTML-ben: A „TAB” billentyű digitális megfelelője
  • Web

Bekezdés behúzása HTML-ben: A „TAB” billentyű digitális megfelelője

2025.08.09.
Az első lépések a webfejlesztés világában: Minden, amit a HTML szerkesztés alapjairól tudnod kell
  • Web

Az első lépések a webfejlesztés világában: Minden, amit a HTML szerkesztés alapjairól tudnod kell

2025.08.09.
Megőrjít az Apache/php hiba? Íme a leggyakoribb okok és megoldásaik!
  • Web

Megőrjít az Apache/php hiba? Íme a leggyakoribb okok és megoldásaik!

2025.08.09.
Védelem a maximumon: Hozzáférés engedélyezése Apache .htaccess fájlban, profi módon
  • Web

Védelem a maximumon: Hozzáférés engedélyezése Apache .htaccess fájlban, profi módon

2025.08.09.

Olvastad már?

A Casimir-effektus: Amikor a semmiből erő születik – a kvantumfizika egyik legfurcsább jelensége
  • Tudomány

A Casimir-effektus: Amikor a semmiből erő születik – a kvantumfizika egyik legfurcsább jelensége

2025.08.10.
Képzeld el, hogy a semmi, a vákuum, amiről azt gondolnánk, hogy üres, valójában tele van élettel, energiával...
Bővebben Read more about A Casimir-effektus: Amikor a semmiből erő születik – a kvantumfizika egyik legfurcsább jelensége
A talajerózió tényleg a sivatagosodás előszobája? A folyamat, ami homokká változtatja a termőföldet
  • Tudomány

A talajerózió tényleg a sivatagosodás előszobája? A folyamat, ami homokká változtatja a termőföldet

2025.08.10.
Minden prokarióta egysejtű? A meglepő igazság a legegyszerűbb élőlényekről
  • Tudomány

Minden prokarióta egysejtű? A meglepő igazság a legegyszerűbb élőlényekről

2025.08.10.
Több mint szavanna: A trópusi övezet füves térségeinek rejtett arca és éghajlata
  • Egyéb

Több mint szavanna: A trópusi övezet füves térségeinek rejtett arca és éghajlata

2025.08.10.
Ne csak literben gondolkodj: 1 barel kőolaj valójában ennyi tonnát nyom a mérlegen
  • Tudomány

Ne csak literben gondolkodj: 1 barel kőolaj valójában ennyi tonnát nyom a mérlegen

2025.08.10.

Ne maradj le

A Casimir-effektus: Amikor a semmiből erő születik – a kvantumfizika egyik legfurcsább jelensége
  • Tudomány

A Casimir-effektus: Amikor a semmiből erő születik – a kvantumfizika egyik legfurcsább jelensége

2025.08.10.
A talajerózió tényleg a sivatagosodás előszobája? A folyamat, ami homokká változtatja a termőföldet
  • Tudomány

A talajerózió tényleg a sivatagosodás előszobája? A folyamat, ami homokká változtatja a termőföldet

2025.08.10.
Minden prokarióta egysejtű? A meglepő igazság a legegyszerűbb élőlényekről
  • Tudomány

Minden prokarióta egysejtű? A meglepő igazság a legegyszerűbb élőlényekről

2025.08.10.
Ne csak literben gondolkodj: 1 barel kőolaj valójában ennyi tonnát nyom a mérlegen
  • Tudomány

Ne csak literben gondolkodj: 1 barel kőolaj valójában ennyi tonnát nyom a mérlegen

2025.08.10.
Copyright © 2025 SilverPC Blog | SilverPC kérdések

Az oldalon megjelenő minden cikk, kép és egyéb tartalom a SilverPC.hu tulajdonát képezi, felhasználásuk kizárólag az eredeti forrás pontos és jól látható feltüntetésével engedélyezett.