Vraag & Antwoord

Webprogrammeren & scripting

[PHP] Veilige login

6 antwoorden
  • Hi, Ik heb een CMSje gebouwd waar mensen op kunnen inloggen. Nu moet de login natuurlijk veilig zijn, ik wil niet dat een of andere dokus zomaar in dat CMS kan gaan zitten vissen. Op iedere pagina worden de login naam en de md5 hash van het password gecontroleerd. Is dit nodig of kun je gewoon een keer inloggen en dan klaar. Veel sites maken ook gebruik van login sessies die om de zoveel tijd vernieuwd moeten worden, en foefjes met IP adressen. Hoe gaat dit in zijn werk en voegt dit uberhaupt veiligheid toe?
  • 1. login met user/pass 2. login correct -> cookie plaatsen login fout -> terug naar 1. (eventueel tellen en na x fouten ip blokkeren) 3. cookie (evt. ip) checken bij elke volgende pagina cookie fout -> 1. 4. logout -> cookie wissen (leeg cookie, cookie met verlopen tijd) 5. cookie laten verlopen met sessie en/of bepaalde tijd Niets is 100% veilig, maar dit werkt in mijn ervaring goed.
  • Om het nog veiliger te maken kun je de wachtwoorden ook door een Javascript MD5 functie (zoek op Google) gooien op de client. Dan wordt je wachtwoord niet leesbaar verstuurd. SSL (https) is natuurlijk nog beter, maar daarvoor moet je een certificaat aanschaffen...
  • [quote:74622b6695]Veel sites maken ook gebruik van login sessies die om de zoveel tijd vernieuwd moeten worden, en foefjes met IP adressen. Hoe gaat dit in zijn werk en voegt dit uberhaupt veiligheid toe?[/quote:74622b6695] sessions in een database gecombineerd met cookies zijn veiliger dan ALLEEN cookies vanwege een aantal redenen: - niet nodig gebruikersnaam/wachtwoord op te slaan in cookie - de cookie met session gegevens kun je alleen geldig laten zijn voor een IP/user agent/tijd combinatie oftwel voor maar 1 persoon. je kunt ook overgaan op session ID's in de URL als de gebruiker geen cookies accepteerd. php heeft ook een [url=http://nl3.php.net/session]eigen session systeem[/url].
  • OK, Als ik dit dus goed begrijp doe ik hetvolgende: 1. Inloggen 2. Username en wachtwoord bevestigen via MySQL 3. Indien correct, unieke session_key genereren 4. IP adres opsporen 5. IP adres en session hash in DB opslaan. 6. Cookie setten dat gebruiker is ingelogt 7. Op ieder pagina geldigheid van de session verifieren Maar wat is dan het voordeel tegenover op ieder pagina gewoon username + login verifieren. Er is nog steeds DB contact met de session hashes!
  • ja, en nog steeds "onveilig" te noemen. maar t is niet anders, tenzij je SSL neemt op andere, belangrijkere punten veiliger aangezien je geen waardevolle gegevens op iemands computer in cookies achter laat. het gevaar van menselijke fouten (slordig omgaan met gegevens etc) is vele malen groter dan dat iemand je internet verkeer gaat aftappen... lees ook ns: http://nl.php.net/session#session.security

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.