Hallo
Om het wachtwoord te resetten wil ik graag een link naar de gebruiker sturen die 24u geldig is. Ik vind tal van suggesties waarbij het token en de vervaldatum in de database opgeslagen worden. Is er ook een mogelijkheid om dat puur via url te doen? Dus zonder database en op de een of andere manier de vervaldatum ( onzichtbaar ) mee te hashen? Al heb ik mijn twijfels of het via de url allemaal wel veilig genoeg is.
Alvast bedankt!
Wesley
- URL 24u geldig maken
-
08-07-2020, 11:52 #1
- Berichten
- 940
- Lid sinds
- 15 Jaar
URL 24u geldig maken
-
08-07-2020, 12:41 #2
- Berichten
- 187
- Lid sinds
- 5 Jaar
Re: URL 24u geldig maken
Je zou de datum kunnen base64-encoden. Maar besef dat dat gemakkelijk gemanipuleerd kan worden. Via de database is in mijn ogen de beste oplossing.
-
29-08-2020, 17:01 #3
- Berichten
- 3
- Lid sinds
- 16 Jaar
Re: URL 24u geldig maken
Dat is niet zo ingewikkeld, je kan een timestamp / timestring meesturen van het moment van verzenden. En een signature die alleen geldig is voor die timestamp.
Bijvoorbeeld:
/password-reset.php?user_id=123×tamp=1598716630&hash=x
de hash genereer je bijvoorbeeld als volgt:
`MD5('PRIVATE_PASSWORD' . $timestamp . $userId)`
Vervolgens valideer je deze hash in password-reset, en doe je een extra check of de timestamp binnen 24 uur is.
Je moet om bruteforce tegen te gaan er wel voor zorgen dat je maar x pogingen per ipadres en/of per user_id per uur toestaat.
Om het minder zichtbaar te maken zou je de user_id, timestamp en hash ook nog base64 encoded kunnen sturen.
/password-reset.php?token=x
```
$token = base64_encode(json_encode(['timestamp' => $timestamp, 'user_id' => $userId, 'hash' => $hash]));
```
En decoden:
```
$decodedToken = json_decode(base64_decode($_GET['token']));)
```
-
31-08-2020, 07:41 #4
- Berichten
- 940
- Lid sinds
- 15 Jaar
Re: URL 24u geldig maken
Hallo Erik.
Bedankt voor uw reactie!
Ik heb het met een token in de database gemaakt.
Wordt het token gebruikt, dan verwijder ik het.
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic