Avatar billede apromis Praktikant
05. august 2010 - 10:44 Der er 15 kommentarer og
1 løsning

Sikkert login - Hvad skal man tage højde for nu om dage ?

Hej allesammen.

Det er længe siden jeg har rodet med php, og skal til at lave et login system til min side.

Hvad skal man tage højde for nu om dage ?

Jeg sætter alle bogstaver til småt.
Jeg fjerner alle ulovlige tegn.
Jeg henter kun limit 1 i min sql når bruger og adgangskode tjekkes.

Hvad skal jeg ellers have kig på ?
Det som sagt længe siden så vil gerne have nogle sikkert basale råd :)

På forhånd tak
Avatar billede michael_stim Ekspert
05. august 2010 - 11:13 #1
Du skal nok kigge på kryptering (hashing) og sql-injection.
Avatar billede apromis Praktikant
05. august 2010 - 11:16 #2
Hej michael.

Jeg bruger md5 så det vel egentlig fint nok, eller tænker du på SSL ?

Jeg vil mene at sql-injection ikke er tilstede når alle tegn er fjernet eller tager jeg fejl ?
Avatar billede michael_stim Ekspert
05. august 2010 - 11:35 #3
Du kunne kigge på mysqli og prepared statements.
Avatar billede michael_stim Ekspert
05. august 2010 - 11:35 #4
Og md5 burde være nok.
Avatar billede apromis Praktikant
05. august 2010 - 11:42 #5
Du har ikke nogle eksempler på mysqli og prepared statements vel ?
Forstår ikke helt om ideen er at skifte mysql ud med mysqli eller lave fejl meddelser med det ?
Avatar billede apromis Praktikant
05. august 2010 - 12:01 #7
Det er rigtig smukt, jeg takker.

Anbefaler man stadig at tjekke brugernavn og adgangskode som ligger i session hver gang en side loades ? :)
Avatar billede intenz Novice
05. august 2010 - 12:06 #8
Det er ikke nødvendigt at tjekke hver gang. Men du bør sikre dig mod session hijacking ved at regenerere session ID'et når brugeren logger på.

http://php.net/manual/en/function.session-regenerate-id.php

Pseudo-kode:

<?php
// tjek bruger/password i database
if ($loginOK) {
  session_regenerate_id();
  // gem bruger navn mv. i session
}
?>
Avatar billede apromis Praktikant
05. august 2010 - 12:09 #9
Det vil jeg gøre.
Men kun ved log in så ?
Og derefter bare tjekke om session login er ja f.eks ?
Avatar billede intenz Novice
05. august 2010 - 12:12 #10
Og når du bruger MD5 til passwordet, så gemmer man selvfølgelig kun det hashede værdi af passwordet i databasen. Passwordet bør ikke gemmes i klar tekst.
Avatar billede intenz Novice
05. august 2010 - 12:14 #11
Normal praksis er, at regenerere session ID'et hver gang brugerens adgangsniveau ændres. Så ja, hvis det bare er logget på/ikke logget på, så er det kun nødvendigt at gøre det der.

Og ja, efterfølgende tjekker du bare om en session værdi er sat, som indikerer om brugeren er logget på eller ej.
Avatar billede apromis Praktikant
05. august 2010 - 12:24 #12
Super det v il jeg gøre.
Ja passwordet gemmes kun i hashen :)

Vil folk svare ? :)
Avatar billede intenz Novice
05. august 2010 - 12:26 #13
Mit kommer her :)
Avatar billede michael_stim Ekspert
05. august 2010 - 13:18 #14
Samler ikke, ellers tak.
Avatar billede ksoren Nybegynder
05. august 2010 - 18:58 #15
Du gør vel ikke passwordet lowercase/fjerner en masse tegn?

Kig evt også på foranstaltninger mod session-hijacking
Avatar billede apromis Praktikant
05. august 2010 - 20:36 #16
Ja fjerner sådan set ulovlige tegn. Mener du det forkert ?

Kender du nogle ting jeg burde se på ? Det som sagt rigtig lang tid siden jeg har rodet med det her :)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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