Avatar billede jensborgbjerg Nybegynder
21. oktober 2005 - 23:59 Der er 10 kommentarer og
1 løsning

Begrænse antal logons

Goddag

Jeg står med en problemstilling, som jeg håber nogen kan hjælpe mig med. Sagen er den, at jeg har et ASP site, hvor der findes brugerprofiler. Jeg ønsker at lave en begrænsning på hvor mange gange man kan forsøge at logge på. Dvs. at, der skal være lukket for at forsøge at logge på fra en given ip adresse ved 3 eller flere forkerte forsøg på logon. Efter et par timer skal denne spærring ophæves. Er der en, der har en opskrift på hvorledes problemet nemmest kan løses i ASP og med en mySQL database
Avatar billede ttopholm Nybegynder
22. oktober 2005 - 00:03 #1
Har du egen adgang til serveren...
Avatar billede apo Praktikant
22. oktober 2005 - 00:07 #2
Det kunne være noget med, at når brugeren indtaster en forkert adgangskode eller brugernavn, gemmes tallet 1 i en session: Session("alarm") = 1

Herefter gentages tællingen til 2 ved endnu et forsøg, indtil Session("alarm") = 3

(Du kan indstille sessionen til at være aktiv i et ønsket antal minutter via: Session.Timeout = xxx)

Når brugeren logger på, skal du undersøge om Session("alarm") indeholder noget:

If Session("alarm") = 3 Then
  'Vis besked
Else
  'Kør loginproceduren
End If
Avatar billede ttopholm Nybegynder
22. oktober 2005 - 00:09 #3
Ulempen ved den metode apo, er at brugeren bare kan lukke sin browser, hvor efter session bliver nedlagt.. og så kan han bare åbne en ny browser og prøve igen....
Avatar billede apo Praktikant
22. oktober 2005 - 00:10 #4
ttopholm > Ja, den tænkte jeg netop på.
Avatar billede ttopholm Nybegynder
22. oktober 2005 - 00:14 #5
Det der skal gøres er at lave en en tabel der logger brugerens ip hver gang han laver et fejllogin...

Og ved tredje gang han gør det "Som findes ved at lave en count i sql'en på hvor mange gange han har prøvet indenfor f.eks. 2 timer." så kan han ikke prøve mere...

Det er en måde man kan gøre det på ;-)
Avatar billede ttopholm Nybegynder
22. oktober 2005 - 00:18 #6
Så der skal laves en tabel med ip, tiden
hvor ip er brugerens ip og tiden er dato og tiden...

og så skal der bare laves en select Count(ip) AS antal WHERE ip = '" & brugerensip & "' AND dato BETWEEN dateadd("H", -2, date()) AND date()

Noget i den dur der
Avatar billede ttopholm Nybegynder
22. oktober 2005 - 00:19 #7
men den kan man jo også komme uden ved at bruge en proxy ;-)
Avatar billede ttopholm Nybegynder
22. oktober 2005 - 00:20 #8
Den nemmeste måde er måske at logge det brugerid, som brugeren prøver at logge sig ind med... og bruge en count på det istedet ;-)
Avatar billede ttopholm Nybegynder
22. oktober 2005 - 00:20 #9
Men det er bare mine tanker ;-)
Avatar billede jensborgbjerg Nybegynder
19. april 2006 - 14:31 #10
Var det muligt at lave et svar som jeg kan acceptere?
Avatar billede ttopholm Nybegynder
19. april 2006 - 14:54 #11
Svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester