Hvor $_COOKIE indeholder en random værdi som er sat i forbindelse med brugerens første login og samtidig er md5() værdien af denne randomværdi+'remote_addr' gemt i en database tabel der indeholder alle der er online for øjeblikket.
Men er der noget der taler imod at jeg blot gemmer 'remote_addr' i database tabellen og så laver :
if(getenv('REMOTE_ADDR')==$row['key'])
hvor 'key' så blot er den 'remote_addr' brugeren 'brugte' da han/hun loggede ind.
Det virker jo, men jeg er interesseret i at høre om evt. ulemper, security risks og lign.
Og bare for at der ikke opstår misforståelser så er det først EFTER at en bruger har logget sig på med korrekt pwd og brugernavn at dette evt. skulle 'køres'.
For s.... hvor er jeg træt af at man hele tiden bliver 'smidt' af exp.dk mens man sidder og skriver indlæg og når man så skal logge på igen så ryger hele indlægget sig en tur og man kan starte forfra :)
Nåh, men tilbage til tråden, jeg skal vist forklarer mig lidt bedre så jeg prøver at vise noget pseudo-kode (ikke copy-paste) :
Jeg ved at der er en masse 'huller' i ovenstående men nu handler det kun om brugen af 'remote_addr'.
Database tabellen 'online' indeholder udover ip adresser fra alle de brugerer der har logget sig på, også et 'timestamp' og ip-adressens 'brugernavn'.
'Timestamp' opdateres hver gang brugeren besøger en 'hemmelig' side, og samtidig checkes alle andre brugeres 'timestamp' og hvis de er ældre end f.eks. 10 minutter slettes de fra tabellen.
Så kan jeg, hver gang en bruger kigger på en 'hemmelig' side, tilgå 'online' tabellen og vise hvor mange der er online og tilmed hvem der er online.
Næste gang brugeren logger på kan det sagtens være med en anden 'remote_addr' men det er jo ligemeget da det altid er den aktuelle der gemmes efter login.
Som sagt er der ikke nogen garanti for at folk har samme IP-adresse næste gang at de ønsker at logge på din side. Der er stadigt brugere som har dynamisk IP-adresse.
Desuden kan de tænkes at ønske at kunne logge på fra forskellige lokationer - derhjemme, på arbejdet, eller fra en tilfældig webcafe mens at de er på ferie. Alt dette gør tilsammen at det som regel er en dårlig ide at blande IP-nummer ind i et login-schema.
nielle>> den aktuelle ip adresse gemmes jo først når login er foretaget. I morgen kan du logge på i Athen hvis du vil, den gemmer først ip adressen efter at du har bevist hvem du er. Så det er ikke noget problem.
nielle>> Det er ikke meningen at det skal bruges til autologin. Og med hensyn til cookies så er det jo præcis det jeg prøver at undgå og det samme med sessions. Ide'en er at der sendes kun login informationer 1 gang til serveren, og det er POST-data fra login.htm. Derefter vil der ikke være nogen cookies ellers sessions alt vil blve kontrolleret via ip adressen.
Derudover er forskellen på cookies og sessions vel ikke så stor igen, bliver session data ikke overført med cookies ?
Mvh. Johan
Synes godt om
Slettet bruger
30. november 2005 - 16:54#10
Nej, ikke session-data. Kun en session-nøgle, som overføres som en enkelt cookie (eller ligger i URL). Selve data ligger på serveren.
Med mindre at du ønsker at kunne holde styr på hvor mange prugere der pt. er online på din side, kan du klare det udelukkende med sessions. Sessions og cookies fungere efter nogenlunde samme principper, og den største forskel er at cookien bliver liggende efter at brugeren logger af.
Men, for nu at svare på dit oprindelige spørgsmål; Nej det er ikke 100% sikkert at bruge IP-nummeret på denne måde:
if(getenv('REMOTE_ADDR')==$row['key'])
Dette skyldes at to brugere, som begge sidder bag en NAT-router, vil se ud som om at de har samme IP-nummer.
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.