IP vraag, na registratie inloggen
Ik heb de volgende vragen:
Ik wil mijn bezoeker inlaten loggen, en dan de inlog koppelen aan het IP adres en een SESSIE. Als 1 van de 2 klopt, dan blijft de bezoeker ingelogd. Zeg maar een 'onthou mij'. Is het verstandig dit op het IP adres te doen?
Daarnaast wil ik na registratie mn gebruiker gelijk in laten loggen. Hoe denken jullie hierover? Is dit slim? Of raden jullie het af? Je krijgt wel de melding dat je je account nog moet activeren binnen 7 dagen, anders word ie geblokkeerd.
Donny Wie weet op 23/06/2013 19:48:26:
Nee, dat is onverstandig, want het betekent dat de honderden scholieren met hetzelfde IP-adres van een school of de veelvraten met hetzelfde IP-adres van een Mickey D allemaal automatisch worden ingelogd.Ik wil mijn bezoeker inlaten loggen, en dan de inlog koppelen aan het IP adres en een SESSIE. Als 1 van de 2 klopt, dan blijft de bezoeker ingelogd. Zeg maar een 'onthou mij'. Is het verstandig dit op het IP adres te doen?
Toevoeging op 23/06/2013 20:03:45:
Wat zou ik daarvoor kunnen doen?
een cookie plaatsen Donny.
Is een cookie niet gevaarlijk in combinatie met inlog gegevens?
Een cookie staat op de computer van de gebruiker. de gegevens die er in staan kun je ook nog eens coderen
En de gegevens van de cookie sla je ook op in een database om te controleren :]
Donny Wie weet op 23/06/2013 21:50:48:
Is een cookie niet gevaarlijk in combinatie met inlog gegevens?
Zeker geen paswoord opslaan in Cookies.
Een login naam is minder erg.
En het cookie verhaal,
Sla nooit persoonlijk informatie op in een cookie, veelste gevoelig. Je kunt het al heel simpel doen door in je cookie bijv een remember_me in te zetten met de waarde 1. Dat houdt in dat de gebruiker onthouden wil worden.
Je hoeft geen gevoelige gebruikers info in een cookie te zetten, tevens krijg je dan problemen met de OPTA en onze nieuwe cookie wet! Alleen voor fucntionele cookies hoef je geen toestemming te vragen/krijgen.
Waarom zou je een gebruiker gelijk willen laten inloggen? Zorg voor een authenticate link die per mail gezonden wordt, anders zul je heel gevoelig zijn voor spammers.
Dan is het accountje aanmaken en spammen met die hap, niet echt aan te raden.
Chris NVT op 24/06/2013 11:54:27:
En het cookie verhaal,
Sla nooit persoonlijk informatie op in een cookie, veelste gevoelig. Je kunt het al heel simpel doen door in je cookie bijv een remember_me in te zetten met de waarde 1. Dat houdt in dat de gebruiker onthouden wil worden.
Sla nooit persoonlijk informatie op in een cookie, veelste gevoelig. Je kunt het al heel simpel doen door in je cookie bijv een remember_me in te zetten met de waarde 1. Dat houdt in dat de gebruiker onthouden wil worden.
En wat heb je hier aan? Om in een cookie te zetten dan iemand onthouden wil worden? Dan is ie nog steeds niet ingelogd hè ;)
Lijkt me overigens dat een "remember me" cookie valt onder een functionele cookie, en bovendien vinkt de bezoeker die optie zelf aan. De cookiewet lijkt me dan ook niet relevant in dit verhaal.
Wil je terugkerende bezoekers herkennen, wat héél nuttig kan zijn, dan kun je hun unieke ID in een cookie zetten. In de volgende basisopzet is dat redelijk waterdicht:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
// Salt, voor de leesbaarheid ingekort maar langer is veiliger
define('SALT', '1OVyGXGiBRxH2y6VeH1biOqQVfHZkjjgNUIfGIu3qJ3IQOD2rb1a8DpD');
// SHA-512-hash van unieke id met salt
$hash = base64_encode(hash('sha512', $id . SALT));
// HTTP-only cookie met hash voor 30 dagen zetten via SSL
setcookie('user', $hash, time() + 2592000, '/', 'example.com', true, true);
?>
// Salt, voor de leesbaarheid ingekort maar langer is veiliger
define('SALT', '1OVyGXGiBRxH2y6VeH1biOqQVfHZkjjgNUIfGIu3qJ3IQOD2rb1a8DpD');
// SHA-512-hash van unieke id met salt
$hash = base64_encode(hash('sha512', $id . SALT));
// HTTP-only cookie met hash voor 30 dagen zetten via SSL
setcookie('user', $hash, time() + 2592000, '/', 'example.com', true, true);
?>
Ozzie PHP op 24/06/2013 12:04:39:
En wat heb je hier aan? Om in een cookie te zetten dan iemand onthouden wil worden? Dan is ie nog steeds niet ingelogd hè ;)
Lijkt me overigens dat een "remember me" cookie valt onder een functionele cookie, en bovendien vinkt de bezoeker die optie zelf aan. De cookiewet lijkt me dan ook niet relevant in dit verhaal.
Chris NVT op 24/06/2013 11:54:27:
En het cookie verhaal,
Sla nooit persoonlijk informatie op in een cookie, veelste gevoelig. Je kunt het al heel simpel doen door in je cookie bijv een remember_me in te zetten met de waarde 1. Dat houdt in dat de gebruiker onthouden wil worden.
Sla nooit persoonlijk informatie op in een cookie, veelste gevoelig. Je kunt het al heel simpel doen door in je cookie bijv een remember_me in te zetten met de waarde 1. Dat houdt in dat de gebruiker onthouden wil worden.
En wat heb je hier aan? Om in een cookie te zetten dan iemand onthouden wil worden? Dan is ie nog steeds niet ingelogd hè ;)
Lijkt me overigens dat een "remember me" cookie valt onder een functionele cookie, en bovendien vinkt de bezoeker die optie zelf aan. De cookiewet lijkt me dan ook niet relevant in dit verhaal.
Tja, Ozzie had wel verwacht dat je snapt er een controle uitgevoerd moet worden.
Gewijzigd op 24/06/2013 12:44:06 door Ozzie PHP
Quote even waar ik zeg dat hij alleen 1 in een cookie moet zetten dan. Het gaat er mij om dat hij geen persoonlijke gegevens in gaat zetten zoals wachtwoorden en gebruikersnamen etc. Bijvoorbeeld remeber_me en een user_id zou al voldoende moeten zijn.
Chris NVT op 24/06/2013 12:57:25:
Ozzie,
Quote even waar ik zeg dat hij alleen 1 in een cookie moet zetten dan.
Quote even waar ik zeg dat hij alleen 1 in een cookie moet zetten dan.
Chris NVT op 24/06/2013 12:57:25:
Het gaat er mij om dat hij geen persoonlijke gegevens in gaat zetten zoals wachtwoorden en gebruikersnamen etc. Bijvoorbeeld remeber_me en een user_id zou al voldoende moeten zijn.
Da's grappig, dan maak ik een cookie aan en ik zet daarin een remember_me en als user_id gebruik ik jouw user_id en vervolgens ben ik ingelogd als jou. Maar nu zal ik het wederom wel weer verkeerd interpreteren ;) :D
Ozzie PHP op 24/06/2013 13:01:47:
Da's grappig, dan maak ik een cookie aan en ik zet daarin een remember_me en als user_id gebruik ik jouw user_id en vervolgens ben ik ingelogd als jou. Maar nu zal ik het wederom wel weer verkeerd interpreteren ;) :D
Ozzie, even teruglezen: je slaat niet de kale user_id op, maar gebruikt encryptie.
Ik ga geen moeite doen en hier veel aandacht aat te geven, hoop dat je begrijpt wat ik bedoel.
Toevoeging op 24/06/2013 14:05:05:
Maar ik zal even kort omschrijven wat een makkelijke en veilige manier is, aangezien het blijkbaar noodzakelijk is voor sommige leden hier he Ozzie :-P ;-)
Voeg een cookie_id toe aan de users tabel, bij het inloggen maak je een cookie aan met de volgende gegevens.
- username (encrypted met bijv mcrypt)
- remember_me met een waarde 1 of 0
- cookie_id (genereer deze met bijv username + tijd en haal het door md5)
Nu check je dus of remeber_me 1 is, zoja dan kijk je of het cookie_id overeenkomt met het cookie_id in de users tabel bij die gebruiker. Komt alles overeen, dan wordt hij automatisch ingelogd, zoniet moet hij opnieuw inloggen.
Bedankt voor alle reacties en "ophef" :P Ik kan hier denk wel lekker mee verder stoeien :) Thanks!
Nog een voordeel hiervan is dat een gebruiker op meerdere devices kan inloggen en de optie kan gebruiken. Denk bijvoorbeeld aan je GSM waar maar meestal een persoon op zit, dan is dat heel erg gemakkelijk.
Gewijzigd op 24/06/2013 15:19:36 door MayDay PHP
Waarom een nieuwe tabel terwijl je gewoon je cookie_id (gehashte string) in je users tabel kunt zetten?
Gewijzigd op 24/06/2013 15:18:05 door Chris PHP
'k Heb mijn tekst even aangepast. Vooral omdat je dan op meerdere devices kan inloggen en andere cookies kan genereren. Je zou dezelfde kunnen gebruiken... maar dan kan je de code niet veranderen wanneer de gebruiker opnieuw inlogt... Zou dat dan geen security issue zijn omdat als je de code kan genereren en geen random string gebruikt? Dat kan dus wel met een aparte tabel... zo komt er geen patroon in?