(1) Iedereen vind het makkelijk als hij/zij niet hoeft in te loggen als je een site bezoekt waarvan je lid bent.
(2) Maar niemand vind het leuk als iemand anders op zijn/haar account gaat lopen prutsen.
Je wilt je bezoekers dus graag helpen met 1, maar 2 is minstens net zo belangrijk.
Vertel ons eens wat JIJ zou doen?
Ik heb een sessie klasse gemaakt geinspireerd op phpBB 3 (forum). Hier wordt in de cookie een sessie_id gegenereerd (unieke md5 string) en het user id opgeslagen. Uiteraard wordt er ook een record aangemaakt in de sessie tabel, hierbij wordt dan o.a. het ip-adres en de browser opgeslagen.
Een geldige sessie is als in de cookie en de database de sessie_id, user_id, ip-adres en browser overeenkomen.
Als mensen de browser sluiten is de cookie niet meer geldig, dus mensen moeten zich steeds weer overnieuw inloggen. Ik maak een webshop dus dit is een vereiste, voor mij.
Ook maak ik gebruik van wachtwoord versleuteling doormiddel van Javascript (http://pajhome.org.uk/crypt/md5). Snuffelaars maken geen kans meer dus.
Ik denk dat het op deze manier aardig veilig is.
edit:
En vertrouw nooit de waarde van Superglobals, dus ook niet de $_SERVER superglobal.
Ontopic: Ik dwing gebruikers altijd om actief in te loggen. Bij "gebruiker" wordt nog veel te vaak aan mensen gedacht, maar het is gewoon een computer aan de client-side.
Als Pietje inlogt en automatisch ingelogd blijft als hij niet actief uitlogt (en veel Pietjes doen dat) dan kan Keesje op de zelfde PC met de account van Pietje aan de gang.
In dit geval geef ik de security dan voorrang. Mijn loginsystemen werken dan ook niet met cookies.
Bijna iedereen heeft Javascript aanstaan in de browser dus maak je veel minder kans dat mensen je wachtwoord kunnen achterhalen aan de hand van de gegevens die je verstuurd naar de server.