Kenneth Dreyer
Well-Known Member
Nå er det veldig lenge siden jeg laget et loginscript, så jeg skal innrømme jeg ikke husker helt hvordan jeg satt det opp med tanke på sikkerhet og brukervennlighet (både for bruker og meg med senere programmering og tilleggsfunksjoner). Jeg er på ferie, så har ingen av mine forrige samples tilgjengelig, og dette er noe jeg må ha ferdig før jeg er hjemme!
Jeg tenkte å sette opp en form, hvor bruker logger inn med epost og passord. Data sendes til login.php. Her kjøres en rekke filter på input-data, for å unngå sql-injection og annet fanteri. Når input er validert, så kjøres en sql query som sjekker om brukernavn og passord eksisterer i databasen. Denne sjekken foretas ved å telle antall linjer på sql resultatet. Her blir da bruker enten validert eller ikke-validert (og sendt tilbake). Om bruker blir validert:
Så lagres det en rekke i databasenavn.online (altså, tabell med navnet 'online'). Denne rekken inneholder brukerid, når bruker sist var aktiv, ip til bruker og browserheader. Bruker får også en session satt i browseren, som forteller at brukeren er innlogget (eks: $_SESSION[innlogget] == true).
Hver gang brukeren trykker på siden, så kjøres en funksjon som sjekker om bruker er online. Denne kryss skjekker opp mot 'online' databasen, samt oppdaterer "sist aktiv" tiden i tabellen.
For å rydde ut uaktive brukere, så kjøres det et script gjennom crontab som rydder opp hvert x minutt.
Gjør jeg det helt feil ved å bruke denne metoden? Blir det for mye? Blir det for lite?
Jeg tenkte å sette opp en form, hvor bruker logger inn med epost og passord. Data sendes til login.php. Her kjøres en rekke filter på input-data, for å unngå sql-injection og annet fanteri. Når input er validert, så kjøres en sql query som sjekker om brukernavn og passord eksisterer i databasen. Denne sjekken foretas ved å telle antall linjer på sql resultatet. Her blir da bruker enten validert eller ikke-validert (og sendt tilbake). Om bruker blir validert:
Så lagres det en rekke i databasenavn.online (altså, tabell med navnet 'online'). Denne rekken inneholder brukerid, når bruker sist var aktiv, ip til bruker og browserheader. Bruker får også en session satt i browseren, som forteller at brukeren er innlogget (eks: $_SESSION[innlogget] == true).
Hver gang brukeren trykker på siden, så kjøres en funksjon som sjekker om bruker er online. Denne kryss skjekker opp mot 'online' databasen, samt oppdaterer "sist aktiv" tiden i tabellen.
For å rydde ut uaktive brukere, så kjøres det et script gjennom crontab som rydder opp hvert x minutt.
Gjør jeg det helt feil ved å bruke denne metoden? Blir det for mye? Blir det for lite?