Cookies in een inlog systeem
een goede avond., :)
ik zie veel topics over "geen username en password in een cookie zetten"
omdat het onveilig is, maar ik zou graag willen weten wat is er dan wel veilig, en ik wil liever niet dat ik zelf en of andere elke keer na een nieuwe sessie, opnieuw moet inloggen, dus dan lijkt voor mij de enige oplossing toch cookies,
en cookies zijn toch alleen uit te lezen vanuit je domein, of vanuit je eigen computer, waarom zou het dan niet veilig zijn een gebruikersnaam er in te zetten ?
groetjes
Gewoon omdat het niet nodig is. Iemand kan zo die cookie stelen en op zijn eigen computer zetten en hij is ingelogd. Zet een unieke code in een cookie danwel in een sessie en koppel dat aan een database record waar je ook het IP in opslaat.
Omdat een cookie altijd wel te stelen dan wel te kopiëren is, is dat natuurlijk niet afdoende. Je slaat dus in je database (dat is nodig als je niet elke keer opnieuw in wilt hoeven loggen) naast die code ook het ip op. Daarnaast sla ik ook vaak nog een paar gegevens op in een hash (ook een soort code) waarin bijv, browser, browsertaal e.d. staan. Het moet dan bijna een 1-op-1 kopie zijn qua software/ versies en instellingen (qua taal) en dergelijke voor je eventueel met eenzelfde ip zomaar kan inloggen op een ander systeem. (ik gebruik zelf toch liever geen cookies overigens)
Een username kan je prima opslaan in een cookie, persoonlijk zie ik daar niet heel veel gevaar in, omdat de username toch vaak al vrij eenvoudig te achterhalen is. Tenminste een hacker kan niet veel met alleen de username op zich.
Echter is een code veiliger, waarom: Die code is elke keer weer anders (tenminste als je het goed doet) dan de vorige keer. Die blijft niet altijd hetzelfde. In mijn systeem wordt die code bij elke pageview weer vernieuwd, zodat een hacker ook de meest recente code nodig heeft om iets met die informatie te kunnen. Een username blijft altijd hetzelfde, dus is heel eenvoudig te gebruiken als je een cookie met die username voor een bepaalde website te pakken kan krijgen.
nou maak ik tenminste ook is een veilige website :P
Iemand kan HTML in zijn cookie stoppen en zo html en javascript uitvoeren op jouw website. Je zult de data uit de cookie dus altijd nog een keer moeten checken terwijl je weet dat de data uit de database betrouwbaar is.
ik check zoiezo altijd de input.. :) dus dat maakt (bijmij) niet uit.
Data die uit een database komt hoef je niet te checken. Daar heb je immers ingezet wat je eruit wilt laten komen. Cookies, Post en Get waarden daarentegen zul je wel moeten controleren. Die controle bedoelde ik :-)
maar de input moet wel gecheckt worden, voordat het een database ingaat, of voor het een cookie of een var ingaat, tenminste ik doe het, ik neem namelijk aan dat het verstandig is.. :P