Sublime Geplaatst: 9 oktober 2009 Rapport Geplaatst: 9 oktober 2009 Hey, ik ben nu een inlogsysteem aan het maken met php en mysql. Ik heb dus een paar vraagjes. Als iemand nu inlogt word eerst zijn wachtwoord omgezet in MD5 en dan vergeleken met de tabel in mysql. Ik heb nu dat de website ze onthoud door Session en dan met username. Is dit wel veilig? $gebruiker = $_POST["taatunaam"]; $_SESSION['taatunaam'] = $gebruiker; (Taatunaam is dan de inlognaam) Zal ik dit veiliger kunnen maken door: $gebruiker = $_POST["taatunaam"]; $md5pass = md5($_POST['wachtwoord']); $_SESSION['taatunaam'] = $gebruiker; $_SESSION['wachtwoord'] = $md5pass; of is het dan juist meer onvelig? En, ik probeer een onthoud functie te maken met cookies (checkbox). ik wil dus als ze deze aanvinken dat als ze de volgende keer proberen in te loggen de naam al in het form "naam" staat maar hoe laat ik de cookie uitlezen en in het form zetten? Reageren
Ophion Geplaatst: 9 oktober 2009 Rapport Geplaatst: 9 oktober 2009 Md5 is niet te kraken. Aangezien je je wachtwoord omzet naar md5 en dan pas naar de sesssion zet, zal dit in mijn ogen niet onveilig zijn. Ik zal nog wel eventjes op iemand anders wachten die mij kan bevestigen Reageren
Sublime Geplaatst: 9 oktober 2009 Auteur Rapport Geplaatst: 9 oktober 2009 dat had ik al begrepen.. er is geen weg terug xD maarja.. je hebt van die malloten site die elke combinatie opslaat maar daar staan alleen standaard woorden in.. Reageren
marcootje Geplaatst: 9 oktober 2009 Rapport Geplaatst: 9 oktober 2009 (bewerkt) MD5 is wel degelijk te kraken, maar het is op z'n minst niet makkelijk. Er zijn 2 manieren: - alle mogelijke combinaties van letters en cijfer md5-en en daarmee inloggen (een paar triljard keer proberen in te loggen dus, of als je het md5-wachtwoord hebt daarmee vergelijken) - een zogenaamde rainbow-table: een tabel met alle tekst - md5 combinaties. Er staan een paar redelijk complete rainbow-tables op het internet. Dit is echter heel lastig om te doen, en ook is het veel werk om in de eerste plaats het md5-wachtwoord te krijgen. De meeste computers doen er dus zo'n 100 jaar of langer over voordat ze een wachtwoord hebben gekraakt. Als je de pech hebt dat je md5 in een rainbow-table staat, duurt het wat korter. Dit is echter alleen als je echt pech hebt . Dit over md5, nu de session. Sessions zijn over het algemeen niet te hacken of zo, maar ik heb eens *ergens* gelezen dat als er meerdere websites van 1 persoon op 1 computer staan, en er zit wat fout in de server, dan kan website 1 de sessies van website 2 uitlezen of zo. Het slimste is dus, om voor alle zekerheid niet het md5-wachtwoord in de sessie te zetten, en al helemaal niet het normale wachtwoord. Ook als je een keertje voor een test var_dump($_SESSION); doet of zo, vind je het misschien niet zo grappig als je wachtwoord op je scherm komt te staan . Als laatst over die auto-inlog-functie; is dat niet de taak van de browser? Volgens mij doen de meeste browsers dat al hoor; je naam in het veldje zetten. Je moet alleen op 'toevoegen' klikken als je voor de eerste keer inlogt op een site. Of in ieder geval firefox doet dit. Maargoed, een cookie vraag je zo op: $waarde = $_COOKIE['cookieNaam']; Ik hoop dat het duidelijk is . Bewerkt: 9 oktober 2009 door marcootje Reageren
Sublime Geplaatst: 9 oktober 2009 Auteur Rapport Geplaatst: 9 oktober 2009 (bewerkt) Oki, dus er het MD5 wachtwoord bij in duwen zal het dus niet veiliger maken. Bedankt voor het onthoud knopje, want die werkt nu en sessies en nog een Probleempje: Er bestaat op het internet een: realtimedata.csv Dit is dus een exel bestand met bovenaan: Usersonline en daaronder het aantal online.. Zou php dit bestand uit kunnen lezen en de het aantal online kunnen laten echo en? EDIT: hoe zou ik trouwens kunnen zorgen dat als ze na 5 inlogpogingen een half uur niet in mogen loggen? Bewerkt: 9 oktober 2009 door Maikle Reageren
marcootje Geplaatst: 9 oktober 2009 Rapport Geplaatst: 9 oktober 2009 (bewerkt) md5 helpt wel degelijk hoor, wat ik duidelijk wilde maken is dat in theorie alles (ja, alles) te hacken is. maar je kunt je wel bedenken dat een md5-wachtwoord kraken lastiger is dan alleen een database of site hacken... verder kan php volgens mij geen excel-bestanden lezen. een onthoud-systeem gaat als volgt: - elke keer dat je inlogt een rij aanmaken in een tabel bijv. 'logins' met de tijdstip (timestamp) - bij elke inlog kijken of er niet meer rijen staan dan 5 in de vorige 30*60 = 1800 seconden Bewerkt: 9 oktober 2009 door marcootje Reageren
Sublime Geplaatst: 9 oktober 2009 Auteur Rapport Geplaatst: 9 oktober 2009 (bewerkt) ik weet wel dat md5 veiliger is hoor, alleen is het dus niet nodig om als sessie te zetten ;p alles is ook al gecodeerd in de tabel gezet.. en over csv files lezen: <?php $fh = fopen("http://taatu_prod.s3.amazonaws.com/info/realtimedata.csv", "r"); while (list($users) = fgetcsv($fh, 1024, ",")) { echo $users; } ?> Het werkt wel maar het pakt rij 1 en 2, hoe kan ik zorgen dat hij alleen 2 pakt? EDIT naar heel veel gepruts is het me gelukt EDIT 2: hoe zou ik kunnen zorgen dat php het email controleert een iets @ iets . iets dus met @ en . bij de registratie.. Bewerkt: 9 oktober 2009 door Maikle Reageren
marcootje Geplaatst: 10 oktober 2009 Rapport Geplaatst: 10 oktober 2009 (bewerkt) Op deze website vind je een paar voorbeelden voor reguliere expressies voor email-adressen. De simpelste in php uitgewerkt, met preg_match(): if(preg_match("/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i", $email_adres)) { // het is een email-adres! } volgens mij moet dat werken Bewerkt: 10 oktober 2009 door marcootje Reageren
Sublime Geplaatst: 17 oktober 2009 Auteur Rapport Geplaatst: 17 oktober 2009 Bedankt, maar ik moet ook controle hebben over een inhoud die verzonden wordt. die mag maar 3 woorden bezitten hoe kan ik dat controleren? Reageren
marcootje Geplaatst: 17 oktober 2009 Rapport Geplaatst: 17 oktober 2009 Dus je hebt een tekst en daar mogen maximaal 3 woorden in zitten? Of anders beredeneerd: er mogen maar 2 spaties in zitten. if(substr_count($tekst, ' ') > 2) { // te veel spaties ofwel te veel woorden } Of heb je ook komma's, punten en bijv. een ; ? Dan weer een reguliere expressie: preg_match_all('%[a-zA-Z]%', $tekst, $matches); if(count($matches[0]) > 3) { // te veel woorden (hier wel woorden, geen spaties) } (beide niet getest) Reageren
Sublime Geplaatst: 17 oktober 2009 Auteur Rapport Geplaatst: 17 oktober 2009 Bedankt, Beide werkend ;P Reageren
Recommended Posts
Een reactie plaatsen
Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.