Veilig loginsysteem

Status
Niet open voor verdere reacties.

jeroendenoot

Terugkerende gebruiker
Lid geworden
14 mrt 2005
Berichten
1.492
Hallo, ik wil een zo veilig mogelijk loginsysteem maken in PHP. Niet omdat het zo goed beveiligd moet zijn, maar ik wil gewoon eens kijken of me dat lukt. Ik deze tutorial eens goed gelezen: http://www.helpmij.nl/forum/showthread.php?t=220344
En op basis daarvan een loginsysteem gebouwd. De code die ik tot nu toe heb staat in de bijlage. Mijn vraag is hoe ik nu verder moet. Ik wil een aantal beveiligde pagina's maken. En ik neem aan dat ik daarvoor sessies moet starten, maar ik weet niet welke en met welke informatie en of die informatie gecodeerd moet zijn etc.

O ja, soms zie je zoiets in mijn code staan: $foutcode[] = 'XXXX';
Daar moet je niet op letten, dat is voor de foutafhandeling of hoe dat ook heet en dan werkt prima.

En als je verbeteringen geeft, graag ook een beetje uitleg erbij en waarom het moet als het kan.
 

Bijlagen

jeroendenoot zei:
En ik neem aan dat ik daarvoor sessies moet starten, maar ik weet niet welke en met welke informatie en of die informatie gecodeerd moet zijn etc.
Sessies ? Één sessie met daarin allerlei informatie voor iedere persoon die in wil loggen is voldoende... :)

Het gaat om dit stukje waar je iets in de sessie moet opslaan:
PHP:
    else
    {
      // Gebruiker succesvol ingelogd, gegevens opslaan in sessie enzo ...
      echo 'Yay ! Succesvol ingelogd !';
    }
Daar zou je bijv. dit kunnen doen:
PHP:
    else
    {
      // Gebruiker succesvol ingelogd, gegevens opslaan in sessie enzo ...
      $_SESSION['loggedin'] = TRUE;
    }
En dan zou je op je beveiligde pagina's simpelweg moeten checken of $_SESSION['loggedin'] bestaat :)... EN natuurlijk of het IP-adres in de sessie overeenkomt met het IP-adres dat de request naar de server maakt ($_SERVER['REMOTE_ADDR']).

En kep je code totaal niet doorgelezen, ben beetje lui :D
 
Oké, ja zoiets dacht ik al, omdat ik dat bij een andere tutorial ook had gelezen, maar ik wist niet zeker of het veilig genoeg was. Nu wel dus. Bedankt!

Zijn er nog andere opties om het systeem nog veiliger te maken? Of kan het niet veel veiliger meer?
O ja, ik heb ook al sleep(5); ingebouwd tegen brute force (of hoe dat ook heet).
 
jeroendenoot zei:
Zijn er nog andere opties om het systeem nog veiliger te maken? Of kan het niet veel veiliger meer?
Het kan nog veel veiliger, check dit maar eens: http://technicalinfo.net/papers/index.html
jeroendenoot zei:
O ja, ik heb ook al sleep(5); ingebouwd tegen brute force (of hoe dat ook heet).
Zo kun je 't ook doen... :)

Je kan ook bijhouden hoe vaak iemand probeert in te loggen en dat IP-adres blokken als het te veel pogingen zijn. Ook kun je die sessie blokken en een cookie plaatsen die aangeeft dat die pc fout bezig is geweest. Verder kun je ook nog een algemene teller maken die telt hoeveel loginpogingen er worden gedaan door iedereen binnen x minuten. Als dat aantal belachelijk hoog wordt, dan kun je 't hele systeem blokkeren. Al is dat wel een tikje vervelend voor de echte gebruikers van het systeem.

Wat je ook kan doen, en waarschijnlijk ook 't verstandigst, is captcha gebruiken... Google er maar eens naar ;)
 
JPeetje zei:
Het kan nog veel veiliger, check dit maar eens: http://technicalinfo.net/papers/index.htmlZo kun je 't ook doen... :)
Ik ben slecht in Engels... :(

JPeetje zei:
Je kan ook bijhouden hoe vaak iemand probeert in te loggen en dat IP-adres blokken als het te veel pogingen zijn. Ook kun je die sessie blokken en een cookie plaatsen die aangeeft dat die pc fout bezig is geweest. Verder kun je ook nog een algemene teller maken die telt hoeveel loginpogingen er worden gedaan door iedereen binnen x minuten. Als dat aantal belachelijk hoog wordt, dan kun je 't hele systeem blokkeren. Al is dat wel een tikje vervelend voor de echte gebruikers van het systeem.
Oké, ik zal ze allemaal wel inbouwen.
JPeetje zei:
Wat je ook kan doen, en waarschijnlijk ook 't verstandigst, is captcha gebruiken... Google er maar eens naar ;)
Wat is dat nu weer? Nou ja, ik ga straks wel even zoeken.
 
JPeetje zei:
Leer 't :p

Meeste artikelen van enig niveau zijn echt niet in 't Nederlands geschreven.
Weet ik, ik ben al bezig met leren hoor, ik zit nog in de 2e klas van het Gymnasium.
 
JPeetje zei:
Het kan nog veel veiliger, check dit maar eens: http://technicalinfo.net/papers/index.htmlZo kun je 't ook doen... :)

Je kan ook bijhouden hoe vaak iemand probeert in te loggen en dat IP-adres blokken als het te veel pogingen zijn. Ook kun je die sessie blokken en een cookie plaatsen die aangeeft dat die pc fout bezig is geweest. Verder kun je ook nog een algemene teller maken die telt hoeveel loginpogingen er worden gedaan door iedereen binnen x minuten. Als dat aantal belachelijk hoog wordt, dan kun je 't hele systeem blokkeren. Al is dat wel een tikje vervelend voor de echte gebruikers van het systeem.

Wat je ook kan doen, en waarschijnlijk ook 't verstandigst, is captcha gebruiken... Google er maar eens naar ;)

O, is dat captcha. Moet ik als ik captcha gebruik ook nog die andere dingen gebruiken die je hierboven genoemd hebt?
 
jeroendenoot zei:
O, is dat captcha. Moet ik als ik captcha gebruik ook nog die andere dingen gebruiken die je hierboven genoemd hebt?
Captcha is sowieso veiliger dan de dingen die ik daarvoor opnoemde. Maar opzich voor je bruteforcing in 't algemeen best goed met alleen captcha. Maar just to be on the safe side, voor het geval iemand echt iets heeft gemaakt waarmee hij plaatjes kan lezen en de cijfers/getallen eruit kan halen, kun je die andere bruteforce-voorkomingstechnieken ook toepassen... :)
 
Ik ga nu er nu inmaken dat er per IP adres maar een bepaald aantal keer per minuut kan worden ingelogd. Wat kan ik als maximaal gebruiken?
 
jeroendenoot zei:
Ik ga nu er nu inmaken dat er per IP adres maar een bepaald aantal keer per minuut kan worden ingelogd. Wat kan ik als maximaal gebruiken?
Ik zou een IP-adres 3 tot 5 pogingen gunnen om in te loggen, geeft hij daarna nog steeds foute logincombinaties, dan zou ik dat IP-adres gewoon een half uur blokken :)
 
Oké, ik ben nu bezig met de pagina voor het veranderen van het wachtwoord. Welke beveiligingen moet ik daar op zetten?
 
jeroendenoot zei:
Oké, ik ben nu bezig met de pagina voor het veranderen van het wachtwoord. Welke beveiligingen moet ik daar op zetten?
Sowieso het al versleuten client-side. Verder kun je niet veel doen.
 
Oké, bedankt. Wel lastig, want nu kunnen crackers wel toeslaan. Maar ja, je kunt inderdaad niet veel meer doen...
 
ik weet niet wat je precies aan gegevens hebt, maar indien je een E-mail adres hebt bij het password, dan altijd per Email het password laten weizigen, zo voorkom je dat de gebruiker er zelf niet van op de hoogte is dat er bij zijn account is "ingeboken" en iemand het password probeerd te weizigen...

misschien had je het al.. maar ik heb het hier niet gelezen dus zeg het maar ff ;)

Gegroet,
Jeffrey
 
Ja, dat is wel een goed idee, maar ten eerste, ik zit (nu nog) bij een gratis host en die ondersteun SMTP niet en ten tweede, als een hacker of een cracker de postback onderschept kan die daar nog gewoon het (gecodeerde) wachtwoord uit halen, ook al heeft de gebruiker zelf het wachtwoord veranderd.
Maar ik denk wel dat, als ik SMTP ondersteuning heb, ik dat dan wel ga toepassen.
Bedankt!
 
Nou weet ik niet veel van php maar... er bestaat toch een mailfunctie in PHP?
 
Ja, die bestaat, maar dan moet je wel een SMTP server hebben, anders werkt die functie niet. En bij die gratis host zit geen SMTP server.;)
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan