Gå til innhold

Beskytte seg mot brute force i loginform?


Anbefalte innlegg

Litt håpløst å forklare, men jeg lurer på hvordan man kan beskytte seg mot "brute force" attack på login form? Det jeg mener er da og sikre seg mot at noen setter opp ett lite programm som tester xxx passordkombinasjoner i sekundet for å prøve å logge seg inn som en bruker.

Lenke til kommentar
Videoannonse
Annonse
Begrens antall login forsøk.

 

Den beste måten blir vel ein tabell som inneholder IP addresser, antall forsøk og tid for siste forsøk. Så ved logg inn vist antall førsk er større enn X og tid no - tid siste forsøk er mindre X minutter print feilmelding.

mhm, tenkt på den, men folk som virkelig vil gjøre sånt, har vel også mulighet for og sette opp dette via en haug med proxyer, så de får ny ip hver gang (eller andre metoder?). Det vil også være dumt i forhold til større nettverk på en IP. Sperrer man en, så sperrer man alle...

Lenke til kommentar

Sett ip, tid_for_første_forsøk og antall forsøk i session og sperr etter ca 5-10 forsøk i løpet av ca 30 min - 24 timer. Det gjør at det ikke er enkelt å brute. Folk kan finne veier forbi, men det krever mer jobb.

 

Pass på at brukerene har sterke passord. Du kan kjøre ordliste test, ha en minimum lengde og sjekke at passordene inneholder store og små bokstaver + tall. Dette tester du hver gang en bruker forsøker å lage eller endre passord.

 

Eller du kan gjøre slik at serveren genererer tilfeldige passord og brukerene kan ikke endre de selv. Da må en eventuell "glemt passord" mekanisme fungere slik at det settes et nytt passord og brukeren får tilsendt dette på mail.

 

Du kan legge til en captcha i login sekvensen.

 

det er ikke så mye mer man kan gjøre.

Lenke til kommentar
...

Du kan legge til en captcha i login sekvensen.

 

det er ikke så mye mer man kan gjøre.

Hmm, en captcha kan i alle fall være kjekt å ha i registreringen (kan jo spamme den med masse brukere og (noe jeg ikke tenkte på i farta)). Også kanskje ha en captcha dersom det er forsøkt mer enn 5 login forsøk på under 1 min eller.no ?

 

Og var det jeg var litt redd for (at det ikke var så veldig mye mer å gjøre med det).

Lenke til kommentar

Jeg vil foreslå at du setter en limit per brukernavn på 5 forsøk per dag. Mer en fem forsøk resulterer i at captcha blir en del av innloggingen 2 timer for eksempel.

 

Red:

Jeg kom på en ting til du kan gjøre. Hvis du logger alle feilede passord, kan du analysere og finne ut om forsøkene er basert på et logisk system (aaa, aab, aac, aad ...) og if (TRUE) blokkere.

Endret av grimjoey
Lenke til kommentar
Eventuellt kan du ta den enkle sleep(); funksjonen..

 

Sett den til 2-3 sekunder, så blir det straks ganske ekkelt å brutforce noen millioner passord ^^

Mhm, har det nå, men regner vel med at en flink person bare oppretter en haug med tilkoblinger, og om han har 300 tilkoblinger aktive, så får han alikevel forsøkt 300 ganger i sekundet.. :s

Lenke til kommentar

du kan begrense antall samtidige pålogginger.

 

// før pålogging

 

$file = 'logins.txt';

$max = 50;

 

put_file_contents((get_file_contents($file) + 1), $file);

if (get_file_contents($file) > $max) die();

 

// etter pålogging

put_file_contents((get_file_contents($file) - 1), $file);

Lenke til kommentar
Sett ip, tid_for_første_forsøk og antall forsøk i session og sperr etter ca 5-10 forsøk i løpet av ca 30 min - 24 timer. Det gjør at det ikke er enkelt å brute. Folk kan finne veier forbi, men det krever mer jobb.
Vil ikke dette være problematisk i og med at session er «avhengig» av cookie e.l for å ta vare på status? Mao., hvis man dropper å sende den type informasjon tilbake til server vil man for systemet se ut som en «ny» bruker hver gang?

 

Det enklest er nok bare å lagre det på serveren på bruker-basis. Mao. enhver bruker kan ikke ha mer enn x antall innloggingsforsøk på y sekunder uavhengig av alt (ip, nettleser osv.).

Eventuellt kan du ta den enkle sleep(); funksjonen..

 

Sett den til 2-3 sekunder, så blir det straks ganske ekkelt å brutforce noen millioner passord ^^

Ikke når man bombarderer med x antall simultane forsøk ;-)
Lenke til kommentar

Ja, det er jo fult mulig det er enkelt å misbruke (antar du mener i betydningen at du kan låse ut enhver bruker), men noe annet vil jo medføre dårligere beskyttelse selv om det ikke trenger å være betydningsfult dårligere. Å knytte det til en IP går jo såklart an, men det hinderer jo ingen å få seg en ny IP og prøve på nytt? En mulighet er forsåvidt å blokkere en «range» IPer (f.eks 8 siste bit i IPen).

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...