IP vraag, na registratie inloggen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Donny Wie weet

Donny Wie weet

23/06/2013 19:48:26
Quote Anchor link
Hoi allemaal,

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.
 
PHP hulp

PHP hulp

16/10/2021 02:13:26
 
Ward van der Put
Moderator

Ward van der Put

23/06/2013 20:02:22
Quote Anchor link
Donny Wie weet op 23/06/2013 19:48:26:
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?
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.
 
Donny Wie weet

Donny Wie weet

23/06/2013 20:03:00
Quote Anchor link
Wat zou ik daarvoor kunnen doen?

Toevoeging op 23/06/2013 20:03:45:

Wat zou ik daarvoor kunnen doen?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

23/06/2013 21:21:39
Quote Anchor link
een cookie plaatsen Donny.
 
Donny Wie weet

Donny Wie weet

23/06/2013 21:50:48
Quote Anchor link
Is een cookie niet gevaarlijk in combinatie met inlog gegevens?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

23/06/2013 23:03:33
Quote Anchor link
Een cookie staat op de computer van de gebruiker. de gegevens die er in staan kun je ook nog eens coderen
 
 - Diov  -

- Diov -

23/06/2013 23:42:43
Quote Anchor link
En de gegevens van de cookie sla je ook op in een database om te controleren :]
 
Kris Peeters

Kris Peeters

24/06/2013 11:19:10
Quote Anchor link
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.
 
Chris PHP

Chris PHP

24/06/2013 11:54:27
Quote Anchor link
Op basis van IP is nooit slim, een smartphone kan per page refresh al een ander ip adres krijgen.

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.
 
Ozzie PHP

Ozzie PHP

24/06/2013 12:04:39
Quote Anchor link
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.

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.
 
Ward van der Put
Moderator

Ward van der Put

24/06/2013 12:14:21
Quote Anchor link
Een beetje fatsoenlijke browser heeft bovendien een ingebouwde password manager: “Wilt u dit wachtwoord opslaan?”

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)
PHP script in nieuw venster Selecteer het PHP script
1
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);
?>
 
Chris PHP

Chris PHP

24/06/2013 12:30:53
Quote Anchor link
Ozzie PHP op 24/06/2013 12:04:39:
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.

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.
 
Ozzie PHP

Ozzie PHP

24/06/2013 12:43:26
Quote Anchor link
Jij zegt dat je alleen een 1 in je cookie moet zetten. Ik zeg dan, daarmee ben je er toch nog niet? Je zult iets moeten meegeven waardoor de bezoeker automatisch wordt ingelogd. Maar waarschijnlijk bedoel je dat ook, maar heb je het onhandig opgeschreven.
Gewijzigd op 24/06/2013 12:44:06 door Ozzie PHP
 
Chris PHP

Chris PHP

24/06/2013 12:57:25
Quote Anchor link
Ozzie,

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.
 
Ozzie PHP

Ozzie PHP

24/06/2013 13:01:47
Quote Anchor link
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.



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
 
Ward van der Put
Moderator

Ward van der Put

24/06/2013 13:16:57
Quote Anchor link
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.
 
Chris PHP

Chris PHP

24/06/2013 13:19:32
Quote Anchor link
Tja Ozzie,
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.
 
Donny Wie weet

Donny Wie weet

24/06/2013 15:07:43
Quote Anchor link
Bedankt voor alle reacties en "ophef" :P Ik kan hier denk wel lekker mee verder stoeien :) Thanks!
 
MayDay PHP

MayDay PHP

24/06/2013 15:15:56
Quote Anchor link
Je zou eventueel één tabel aan kunnen maken waar je dan de userId samen met een random gemaakte string en een verval datum opslaat. Dan sla je deze informatie geëncrypteerd op in een cookie bij de gebruiker. Als de gebruiker dan terug komt controleer je dat en als de informatie klopt verander je de random gemaakte string. Zo heeft de gebruiker telkens een andere cookie.

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
 
Chris PHP

Chris PHP

24/06/2013 15:17:49
Quote Anchor link
@May,
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
 
MayDay PHP

MayDay PHP

24/06/2013 15:22:31
Quote Anchor link
'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?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.