Jag håller på att bygga ett inloggningsscript m.h.a. cookies och har fått mkt hjälp av Tydals inlägg.
Några frågor har dykt upp:
* Vad händer om det redan finns en cookie i besökarens dator med samma namn som den jag skapar vid inloggningen? Skrivs den över?
Ett säkerhetsproblem jag kommit fram till: md5-hashen sparas ju i en cookie i besökarens dator och vem som helst (som kommer åt datorn, t.ex. en kompis) kan gå in och kopiera för att sedan skapa en egen cookie med samma hash på sin dator. Då kommer ju han/hon in utan att behöva logga in... Tydal löser detta genom att lägga in en tidsstämpel i hashen. Då har jag två motfrågor:
* Är inte tanken med att spara inloggningen i en cookie ofta att besökaren inte ska behöva logga in på nytt nästa gång han/hon besöker sidan...?
* Om en inloggad besökare surfar runt på sajten längre än (i detta fall) en timme så slängs han/hon ut ju, eller hur?
Inte så bra.
En fråga till:
Hur gör man för att ändra en cookie? T.ex. ändra giltighetstiden.
Om det redan finns en cookie med samma namn så skrivs den över.
Om du vill ha finessen att besökaren inte ska behöva logga in nästa gång så har du problemet med att cookien kan stjälas. En variant kan ju vara att lägga med ip-adressen, men det funkar ju inte så bra om man har dynamisk ip (vilket de flesta har) eller om man kopplar upp sig på olika ställen (exempelvis bärbar dator).
Medan en inloggad besökare surfar runt så kan du ju uppdatera tiden genom att skicka en ny cookie.
Ok, tack. Då är några frågetecken utsuddade. Man får väl helt enkelt informera besökaren om att det finns det vissa risker med att spara inloggningen, och rekommendera att endast göra detta på en privat dator.
Det är är ju som sagt ett inlägg du skrev för länge sedan, men visst stämmer principen och resonemangen fortfarande?
Ja, det är faktiskt sex år sen jag skrev det. Först på Eforum, och så kopierade jag hit det några år senare när någon ställde frågan här. Men visst stämmer principerna och resonemanget fortfarande. Det är ju fördelen med att försöka hålla det på en generell nivå och beskriva tekniken bakom...
Idag använder man dock hellre sessioner för att lagra information om besökarna, men sessioner använder ju cookies för att fungera. Informationen lagras dock på servern kopplat till ett id-nummer (sessions-id) och så sparas id-numret i cookien.
Sessioner är mer om du vill kunna lagra saker om besökarna. Bara för inloggning så kvittar det. Men som du skriver, om du vill att inloggningen ska ligga kvar mellan besöken så behöver du använda cookies själv. De cookies som sessionerna skapar raderas automatiskt när man stänger webbläsaren.