Jag har sökt här (läst allt jag hittade) och i PHP-forumet (läst det som verkade diskutera mer allmänt snarare än hjälp med fel i kod) men har fortfarande vissa funderingar som jag inte hittat svar på.
Så vitt jag förstår kan man lösa inloggning med SESSIONs. Men det öppnar samtidigt för en del problem: 1) Vad händer om användaren vägrar COOKIES?
Om resultatet är att den personen inte kan använda min site så struntar jag i problemet, men kan det ge upphov till säkerhetsproblem?
2) Finns det risk att en användare kan se innehållet i SESSION? Ändra det?
I stil med att GET och POST variabler kan få andra värden än man tänkt sig? Vad gör man åt det i så fall?
Sedan... i någon tråd talas det om att det kan vara bra att logga ipnumret. Och då undrar jag... 3) Kan man inte lagra inloggade personer i sin MySQL-databas istället och slippa SESSIONs?
Alltså, om man skapar en tabell:
Active ((userid, ipnr, time))
och låter en lyckad inloggning registreras i den, samt varje gång detta ipnr laddar en ny sida uppdateras tiden om denna nya aktivitet sker inom x minuter?
Proxyservrar kan väl inte dela ut samma ipnummer till olika personer samtidigt - eller kan de det?
Vilka är nackdelarna med den lösningen jämfört med SESSIONs? Ev. fördelar?
I mitt fall handlar det om inloggning för highscorelistor och gästboksinlägg (frågesport).
1. Inga säkerhetsproblem. Användaren blir inte inloggad.
2. Nej. Däremot finns det risk att användaren kan använda någon annans session, om du då inte gör IP-kollen.
3. Jo, det kan man. Då får du skapa dina cookies själv istället.
4. Nackdelen är att det blir mer att programmera. Fördelen att du kan göra det som du vill.
Proxyservrar visar normalt inte personernas IP-adresser utan presenterar alla besökare med sin egen adress.
En proxy är en betjänt, ungefär. Du säger åt betjänten att gå till pressbyrån och köpa en tidning åt dig. De som befinner sig i affären ser bara att det är betjänten som köper tidningen. De vet ju inte att det är du som ska ha den. Om betjänten bara jobbar åt dig så går det ju i och för sig att lista ut att det är du, men om flera människor anlitar samma betjänt (proxy) så vet ju inte personerna i affären vem han/hon handlar åt. Såvida inte ni har olika smaker, förstås :-)
AOL kör förmodligen med DHCP, dvs när man går ut på nätet så får man en ledig IP-adress ur poolen. När personen sedan stänger av datorn blir hans/hennes tidigare IP-adress tillgänglig för andra. På det viset kan du alltså inte samtidigt ha två personer med samma IP, men det är fullt möjligt att någon annan kommer in med IP-adress som tidigare använts av någon annan. Adresserna återanvänds liksom. Kallas för dynamiska IP-adresser.
Man har också samma IP-adress som andra om sitter på ett NAT:at nät (network address translation). Så är vanligt på arbetsplatser. Då har man ett lokalt nätverk mellan datorerna sinsemellan och datorernas riktiga IP-adresser finns i den lokala serien (exempelvis 192.168.0.2, 192.168.0.4 och sånt). Sedan går all trafik ut på Internet genom en router och så har routern en "riktig" IP-adress som är den syns på din hemsida. Då får också flera besökare samtidigt samma IP-adress.
Du kan lagra IP:t i session och det räcker med det. Sessioner funkar så att när den skapas så slumpas ett tal fram som ska identifiera användaren. Detta tal skickas i en cookie till användaren och vid varje sidvisning så skickas ju cookien över till servern och servern vet därmed vilken session den ska plocka fram.
Får man tag på någon annans cookie kan man alltså ta över den personens session genom att använda den cookien själv. Kallas session hi-jacking. Men det kan du alltså begränsa genom att kolla IP:t.
... Får man tag på någon annans cookie kan man alltså ta över den personens session genom att använda den cookien själv. Kallas session hi-jacking. Men det kan du alltså begränsa genom att kolla IP:t.
Om ip:t skiljer sig åt vad gör man då? :q Loggar piratens ip och stänger vederbörande ute för tid och evighet eller? :q Inte så bra väl om vederbörande sitter bakom en proxy, t.ex. ?
Hur åstadkommer man uppfyllelse av den svenska lagen om att radera all info? Dvs hur försäkrar jag mig om att sessionen verkligen rensas på begäran och att den tillhörande cookien förstörs? :q
Om IP:t inte stämmer, be besökaren logga in på nytt. Är det den riktige besökaren så vet ju han/hon sitt lösenord.
(Dock finns det ju webbplatser som mot allt förnuft lagrar användarens lösenord i cookien, och då är det ju kört.)
Sessionen raderas när du raderar den eftersom den lagras på servern. Det är en helt vanlig fil i tmp-katalogen. Att cookien förstörs kan du dock inte veta eftersom den ligger på besökarens dator, så den biten är ju upp till honom/henne. Dock är ju standarden att du när du vill radera cookien ska sätta den på nytt men med ett klockslag i forntiden och då ska webbläsaren upptäcka att den har gått ut och därmed radera den. Men som sagt, det är inte ditt ansvar.
253 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2