Avatar billede lach Juniormester
18. februar 2022 - 18:13 Der er 10 kommentarer og
1 løsning

Auto login

Hej.
Nogen der ved hvordan man kan lave auto login med tjekboks i javaScript?
Avatar billede softspot Forsker
19. februar 2022 - 13:13 #1
Beskriv evt. dit setup og hvad det er du gerne vil opnå. Det er svært at give et bud på så spinkelt et grundlag.
Avatar billede lach Juniormester
19. februar 2022 - 17:37 #2
Ja se her i mit eks herunder.
Hvis tjekboksen autologin er tjekket. vil jeg gerne have formularen formlogin til at sende automatisk.

<html>
<head>
<meta http-equiv="Content-Language" content="da">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>loginside</title>
</head>

<body>
<form method="POST" name="formlogin">
  <p><input type="text" name="brugernavn" size="20"></p>
  <p><input type="text" name="password" size="20"></p>
  <p><input type="checkbox" name="C1" value="ON">autologin</p>
  <p><input type="submit" value="login" name="login"></p>
</form>
</body>
Avatar billede softspot Forsker
19. februar 2022 - 18:05 #3
Det er det basale setup af siden, jeg tænkte mere på, hvilken platform du kører på og hvad du har adgang til på serveren.

En løsning kunne være at du genererede et token på serveren, som blev anvendt til at identificere brugeren og vurdere om adgangen stadig var gyldig. Dette token kunne du gemme i en cookie på klienten (krypteret, cookien skal være secure og http only).
Avatar billede lach Juniormester
19. februar 2022 - 18:12 #4
Jeg kører klassisk ASP på en IIS Server 2008
Tænkte bare om et javaScript kunne klare det. Kan Server 2008 klare det du nævner?
Avatar billede softspot Forsker
19. februar 2022 - 18:22 #5
Hmm... der skal nok findes noget kode som kan generere et token på serveren og cookieteknologien understøttes også af ASP Classic. Det er nok bare lidt mere bøvlet at håndtere verificeringen af token på serveren end, hvis det var baseret på en nyere teknologi. .NET har en pipeline med noget middleware, hvor man kunne lægge sådan et tjek. Det kan jeg ikke huske om ASP Classic har (men jeg tvivler). Hvis du har struktureret din ASP-kode sådan, at der er noget som inkluderes på alle sider, kunne det være en mulighed at centralisere det token-tjek i et af de kodemoduler, men jeg kan ikke lige give dig en detaljeret opskrift på det, på stående fod.

Tanken er, at du for hvert request tjekker om der er behov for at være logget på. Hvis det er et krav tjekker du om der findes en cookie med et token. Er det tilfældet tjekker du om det token er gyldigt og om brugeren eksisterer. Er token OK, fortsætter sidens udførsel som forventet, ellers omdirigeres request til login-siden.

Når der logges på, genereres et token, hvis brugeren har afkrydset husk mig og dette gemmes så i en cookie til senere brug.
Avatar billede lach Juniormester
20. februar 2022 - 12:00 #6
Jamen jeg har jo et gemt brugernavn og password i formularen,
Så det er faktisk bare formularen der skal sendes via et javaScript i stedet for et klik på login-knappen.
Avatar billede softspot Forsker
20. februar 2022 - 15:01 #7
Problemet er nok mest sikkerheden i det setup. Det er derfor jeg foreslår, at du genererer et krypteret token på serveren med en ingrediens, som kun kendes af serveren og derfor kun kan afkodes af serveren. Ellers åbner du jo op for, at andre kan bruge oplysningerne til at logge på en anden brugers konto...
Avatar billede lach Juniormester
21. februar 2022 - 16:53 #8
Jeg forstår ikke at det har noget med sikkerhed at gøre.
Login valideres i ASP script op i mod en MySql.
Det handler kun om at få sendt formularen automatisk.
Avatar billede softspot Forsker
22. februar 2022 - 23:20 #9
Ja, det jo egentlig bare et udvidet session-token du har brug for.

Ret beset, hvis det ikke er et problem for dig og dine brugere, kan du jo blot lægge et token, genereret på serveren, i en cookie og så gemme det samme token i databasen på serveren (knyttet til den bruger, som skal kunne logge ind med dette token).

Når en forespørgsel så rammer serveren, skal du først tjekke om bruger er logget på (f.eks. via en værdi i session) og i så fald bare gennemføre kaldet. Er brugere ikke logget på, tjekker du om det token tilhører en bruger (samt evt. andre tjek, som nævnt nedenfor) og i så fald, logger du brugeren på (f.eks. ved at oprette en værdi i session) og gennemfører kaldet. Matcher token ikke en eksisterende bruger, omdirigerer du til login-skærmbilledet.

Du bør dog forsøge at lægge en eller anden blokering for misbrug ind i dit token, f.eks. IP-adressen hvorfra login blev foretaget i første omgang og evt. andre elementer, så det bliver sværere at misbruge dette token. Desuden bør der være en udløbsdato på et token (som også skal bages ind i det token du udsteder), så det ikke kan bruges for evigt.

Hvis dette skal have nogen beskyttende værdi, skal token være krypteret, så parametrene (IP og andre tjek-værdier) ikke kan aflæses umiddelbart.
Avatar billede softspot Forsker
22. februar 2022 - 23:24 #10
Du skriver, at du har gemt brugernavn og kodeord i formularen. Dette er jo et stort sikkerhedsproblem. Dels bør kodeordet være hashed i databasen, så det er slet ikke muligt for dig at forudfylde formularens kodeord, dels vil det være et problem, at du forudfylder en formular, hvis en browser anvendes af forskellige brugere.

Men kig lige på forslaget i #9. Det er ikke super sikkert, men noget bedre end en forudfyldt formular, som alle kan aflæse data fra, hvis de vil.
Avatar billede lach Juniormester
25. februar 2022 - 17:14 #11
Det er ikke det jeg søger. men jeg giver trods alt point for dit besvær.
Og lukker hermed.
Tak.
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

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