Jump to content

Het Inlogsysteem Topic van Maikle


Sublime

Recommended Posts

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?

Link to comment
Delen op andere websites

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 ;)

Link to comment
Delen op andere websites

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 :puh: .

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: door marcootje
Link to comment
Delen op andere websites

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: door Maikle
Link to comment
Delen op andere websites

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: door marcootje
Link to comment
Delen op andere websites

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: door Maikle
Link to comment
Delen op andere websites

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: door marcootje
Link to comment
Delen op andere websites

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)

Link to comment
Delen op andere websites

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.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.
×
×
  • Create New...