Ben ik (alweer ;) )! Ik wou graag een beetje hulp met cookies, om precies te zijn, cookies voor onthoud mijn gegevens. Als ik het goed heb gebruik je bij de functie onthoud mijn gegevens (bij login) met cookies. Maar hoe werkt dit? En wat is het voordeel ervan? ALvast bedankt voor respons.
Het slaat je username en wachtwoord op in een cookie. Alleen is het inmiddels behoorlijk achterhaald.
Ik vind het het kwalijk dat die moeten worden opgeslagen daarin. Alle browsers en eventuele extenties en PasswordManagers kunnen zelf wel op een veiligere manier de inloggegevens opslaan.
Cookies zijn leuk voor niet-vertrouwelijke data. Met enig verstand van XSS kan iemand zo een cookie van een tegenpartij uitlezen, met gevolgen van dien, zoal identiteitsfraude.
username en een wachtwoord is natuurlijk niet nodig.
username + random string.
En dan in de database ook die combinatie opslaan, met daarbij wat gegevens als een tijdstip, user agent string, en evt. een ipadres.
Biedt een browser zo'n cookie aan, dan check je in de database of de rest van de info klopt (ip is discutable, gezien de mogelijkheid dat een ipadres verandert als je je van werk naar huis verplaatst, of je smartphone op een ander netwerk zet)
Klopt die combinatie, dan laat je de gebruiker ingelogd.
Zou eventueel ook zonder username in cookie kunnen, maar dan moet de string niet random zijn, maar uniek. (en ook niet raadbaar) (misschien in combinatie met een timestamp van aanmaken?)
En stel in dat de cookies ook alleen over https verstuurd mogen worden.
Die vind ik wel interessant. Cookies worden toch meegestuurd bij de request? Dus als ik een http:// request doe (ook al wordt ik doorgestuurd naar https://) dan zit mijn cookie toch al in de header van het request?
secure
Indicates that the cookie should only be transmitted over a secure HTTPS connection from the client. When set to TRUE, the cookie will only be set if a secure connection exists. On the server-side, it's on the programmer to send this kind of cookie only on secure connection (e.g. with respect to $_SERVER["HTTPS"]).
httponly
When TRUE the cookie will be made accessible only through the HTTP protocol. This means that the cookie won't be accessible by scripting languages, such as JavaScript. It has been suggested that this setting can effectively help to reduce identity theft through XSS attacks (although it is not supported by all browsers), but that claim is often disputed. Added in PHP 5.2.0. TRUE or FALSE
De browser zou hem dus niet moeten sturen. Neem aan dat de meeste moderne browsers dit ook niet zullen doen.