cookie beveiligen
ik vraag me heel kort en krachtig af hoe ik een cookie het beste kan beveiligen zodat het 100% save is en toch nog gewoon bruikbaar.
ik gebruik cookie om de login te onthouden. Ik heb nu een speciaal wachtwoord om via cookie in te loggen die aan de gebruiker hangt. Maar hoe zouden jullie het doen met encryptie, salt's? en eventueel koppelen aan een ip-adres ofzo?
groetjes bo
beetje veel ?
Gewijzigd op 01/01/1970 01:00:00 door Nils Kuijpers
hoe encrypte jullie cookies? base64? zodat hij weer te decode is? of een hash maken met sha1? (bijv sha1( username:cookiepass ) en dan vergelijken in de database?
Je kunt bijvoorbeeld ook het IP in de database opslaan. Wanneer het IP-adres in de database niet overeenkomt met het IP adres waarmee op dit moment ingelogd wordt zou er wel eens iets fout kunnen zitten en kun je een bezoeker uiloggen.
Probleem hiermee is dat gebruikers met een laptop die vaak op verschillende locaties zitten steeds opnieuw in moeten loggen.
PHPHulp geeft bijvoorbeeld een melding "Cookies corrupt of incorrect". Ik heb er helemaal geen behoefte aan om dat te weten, log me dan gewoon uit, log ik wel weer in. Die witte pagina met die error melding voegt niets toe en wekt alleen maar ergernis op.
$l_sHash .= md5($_POST['gebruikernaam']);
$l_sHash .= md5(rand());
$l_sHash = md5($l_sHash);
dit sla ik altijd op samen met en het ip adres in db en dan kijk ik of deze code en zijn ip adres in de database staan
Dus ja, is het veilig om daar gevoelige informatie achter te laten?
phphulp slaat usernane en md5(paswoord) op in de cookies.
Wat waarschijnlijk beter zou zijn, is om dat nog eens te coderen. Bekijk eens hoe phpBB3 zijn paswoorden codeert. In mijn laatste post geef ik een link waar je een aantal functies krijgt die je zo kan gebruiken:
http://phphulp.nl/forum/showtopic.php?cat=1&id=56718
Telkens je inlogt, wordt het paswoord in de db aangepast. Daarmee zou je ook wel wat kunnen verzinnen om de veiligheid te verhogen.
Emmanuel Delay schreef op 28.10.2008 14:55:
Dus ja, is het veilig om daar gevoelige informatie achter te laten?
Nee dat is dus niet veilig. Je slaat nooit de gebruikersnaam en wachtwoord op in een cookie, ook niet gecodeerd. Lees die posts van php newbie en rvw nog eens door, dat is de manier.
Wat PHP Newbie zegt, een unieke ID koppelen aan een IP adres, en verder geen shit in een cookie zetten. Gebruik zelf enkel sessies icm met nog wat andere checks.
Een (goeie) webbrowser stelt zelf voor om login gegevens op te slaan, dus waarom zou je nog moeite doen?
Ik vind dat cookies meer dienen voor preferences, maar ja, dat is maar een mening.
Emmanuel Delay schreef op 28.10.2008 15:13:
Een (goeie) webbrowser stelt zelf voor om login gegevens op te slaan, dus waarom zou je nog moeite doen?
Ik vind dat cookies meer dienen voor preferences, maar ja, dat is maar een mening.
Ik vind dat cookies meer dienen voor preferences, maar ja, dat is maar een mening.
Omdat sommige mensen altijd ingelogd willen zijn en niet steeds weer moeten inloggen... Ik weet niet precies of dit klopt, maar volgens mij is een sessie al weg als je een tab sluit.
EDIT:
Wellicht dat dat bij Chrome trouwens niet zo is, aangezien daar iedere tab zijn eigen proces heeft! Maar bij firefox en IE zijn ze iig niet weg bij het sluiten van een tab.
EDIT2:
Meteen even getest, ook bij chrome blijven sessies bestaan bij het sluiten van een tab.
Gewijzigd op 01/01/1970 01:00:00 door Nils Kuijpers
Ben benieuwd hoe dat bij Chrome is, met die aparte processen.
Nils schreef op 28.10.2008 15:20:
Karl: sessies zijn niet weg als je een tab sluit, pas als de browser compleet is afgesloten.
EDIT:
Wellicht dat dat bij Chrome trouwens niet zo is, aangezien daar iedere tab zijn eigen proces heeft! Maar bij firefox en IE zijn ze iig niet weg bij het sluiten van een tab.
EDIT:
Wellicht dat dat bij Chrome trouwens niet zo is, aangezien daar iedere tab zijn eigen proces heeft! Maar bij firefox en IE zijn ze iig niet weg bij het sluiten van een tab.
Mjah, kijk, misschien is dit een rare hersenkronkel van mij, maar ik zou het vrij logisch vinden als die weg zijn, aangezien je de pagina hebt gesloten en weg bent van de site (iig, daar gaan we nu van uit).
Voor zover ik weet heeft ie geen optie om gesloten pagina's weer te openen, firefox sinds een aantal versie's ook en Opera had het al heel lang.
Als je dan weer naar de site gaat start je, vind ik, weer een nieuwe sessie.
Verder weet ik wel dat als je firefox killt via process manager op windows, en je start hem later weer op dat de sessie dan soms wel is blijven bestaan.
Karl schreef op 28.10.2008 15:26:
Mjah, kijk, misschien is dit een rare hersenkronkel van mij, maar ik zou het vrij logisch vinden als die weg zijn, aangezien je de pagina hebt gesloten en weg bent van de site (iig, daar gaan we nu van uit).
Voor zover ik weet heeft ie geen optie om gesloten pagina's weer te openen, firefox sinds een aantal versie's ook en Opera had het al heel lang.
Als je dan weer naar de site gaat start je, vind ik, weer een nieuwe sessie.
Verder weet ik wel dat als je firefox killt via process manager op windows, en je start hem later weer op dat de sessie dan soms wel is blijven bestaan.
Nils schreef op 28.10.2008 15:20:
Karl: sessies zijn niet weg als je een tab sluit, pas als de browser compleet is afgesloten.
EDIT:
Wellicht dat dat bij Chrome trouwens niet zo is, aangezien daar iedere tab zijn eigen proces heeft! Maar bij firefox en IE zijn ze iig niet weg bij het sluiten van een tab.
EDIT:
Wellicht dat dat bij Chrome trouwens niet zo is, aangezien daar iedere tab zijn eigen proces heeft! Maar bij firefox en IE zijn ze iig niet weg bij het sluiten van een tab.
Mjah, kijk, misschien is dit een rare hersenkronkel van mij, maar ik zou het vrij logisch vinden als die weg zijn, aangezien je de pagina hebt gesloten en weg bent van de site (iig, daar gaan we nu van uit).
Voor zover ik weet heeft ie geen optie om gesloten pagina's weer te openen, firefox sinds een aantal versie's ook en Opera had het al heel lang.
Als je dan weer naar de site gaat start je, vind ik, weer een nieuwe sessie.
Verder weet ik wel dat als je firefox killt via process manager op windows, en je start hem later weer op dat de sessie dan soms wel is blijven bestaan.
Google vindt dat blijkbaar idd een rare hersenkronkel, lees mijn 2de edit maar even.
Evert schreef op 28.10.2008 15:24:
Ben benieuwd hoe dat bij Chrome is, met die aparte processen.
"aparte" processen dat moet je met en korreltje zout nemen ...
Nils schreef op 28.10.2008 15:28:
Google vindt dat blijkbaar idd een rare hersenkronkel, lees mijn 2de edit maar even.
Jah, ik heb het gelezen. Ik heb het toch niet zo op die chrome...
rvw schreef op 28.10.2008 15:30:
"aparte" processen dat moet je met en korreltje zout nemen ...
Evert schreef op 28.10.2008 15:24:
Ben benieuwd hoe dat bij Chrome is, met die aparte processen.
"aparte" processen dat moet je met en korreltje zout nemen ...
Nou, dat moet je dus NIET met een korreltje zout nemen. Kijk maar eens in je task manager als je een paar tabs open hebt staan.
"Man, er lopen toch slimme mensen rond bij Google.".
maar ik wil het denkik toch met cookies onthouden zodat ze meteen herkend worden als ze op de site komen..
ik denk nu dat ik een hash maak van een random salt en een fingerprint en deze opsla in de database en cookie en deze laat vergelijken.
en na iedere inlog een nieuwe salt en overnieuw database en cookie wegschrijven.. maar dan zit ik te denken hoe ik het dan zal doen met een gebruikersnaam of gebruikersid..
de finger print..:
$_SERVER['REMOTE_ADDR']
$_SERVER['HTTP_ACCEPT_CHARSET']
$_SERVER['HTTP_ACCEPT_ENCODING']
$_SERVER['HTTP_ACCEPT_LANGUAGE']
$_SERVER['HTTP_USER_AGENT']
Gewijzigd op 01/01/1970 01:00:00 door Bo Bo
maar als ik dat dan op zoon manier doe, waarom zou ik dan niet cookies weg kunnen laten en zoon unieke fingerprint in mijn database opslaan en gebruikers inloggen als de fingerprint klopt..? immers heeft noooit iemand dezelfde fingerprint, of heb ik het nu helemaal mis?