cookies & passwords
Ik zie zo direct de oplossing niet daarom doe ik hier maar weer mijn zoveelste beroep op jullie expertise. Ik probeer de waarden van 2 tekstvelden in te vullen met mijn vars cookie_user en cookie_pass als een gebruiker in het login formulier een Remember checkbox aanvinkt doe ik het volgende
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?
if(isset($_POST['remember'])){
if (isset($_COOKIE['cookname']) && isset($_COOKIE['cookpass'])) {
setcookie ("cookie_user", $username, time()+60*60*24*30);
// md5 gebruik ik zodat anderen niet uit de cookie welke opgeslagen
//wordt op de pc kunnen afleiden wat de user zijn password is
setcookie ("cookie_pass", md5 ($_POST["password"]), time()+60*60*24*30);
}
?>
if(isset($_POST['remember'])){
if (isset($_COOKIE['cookname']) && isset($_COOKIE['cookpass'])) {
setcookie ("cookie_user", $username, time()+60*60*24*30);
// md5 gebruik ik zodat anderen niet uit de cookie welke opgeslagen
//wordt op de pc kunnen afleiden wat de user zijn password is
setcookie ("cookie_pass", md5 ($_POST["password"]), time()+60*60*24*30);
}
?>
in mijn login script haal ik de cookie gegevens van de pc en stop ze als values in de tekstvelden:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?
<td width="188"><input name="login" type="text" class="textfield" id="login" style="background-color: rgb(248, 237, 238);" value="<?php echo $_COOKIE['cookie_user']?>"/></td>
</tr>
<tr>
<td class="text5"><b>Password</b></td>
<td><input name="password" type="password" class="textfield" id="password" style="background-color: rgb(248, 237, 238);" value="<?php echo $_COOKIE['cookie_pass'] ?>"/></td>
?>
<td width="188"><input name="login" type="text" class="textfield" id="login" style="background-color: rgb(248, 237, 238);" value="<?php echo $_COOKIE['cookie_user']?>"/></td>
</tr>
<tr>
<td class="text5"><b>Password</b></td>
<td><input name="password" type="password" class="textfield" id="password" style="background-color: rgb(248, 237, 238);" value="<?php echo $_COOKIE['cookie_pass'] ?>"/></td>
?>
de username wordt in deze situatie per gebruiker normaal weergegeven maar de password wordt in md5 notatie weergegeven, waardoor een user in feite niet kan inloggen. Wat moet ik nu precies doen om de reverse notation van de md5 cookie_pass in de tekstveld te krijgen ?
Alvast bedankt iedereen
De 'remember me' functie wordt gebruikt zodat een gebruiker bij een volgend bezoek direct ingelogd is, niet zodat jij inloggegevens in het formulier in gevuld worden. Het enige dat je dus in een cookie op zou slaan zijn bijvoorbeeld een hash die je ter verificatie ook opslaat in de database.
Bij een volgend bezoek van deze gebruiker, zie je dus dat deze cookies bestaan en kun je controleren of de hash overeenkomt met die in de database en of bijvoorbeeld het ip-adres niet veranderd is. Als alles klopt, weet je dus dat het de juiste gebruiker is en kun je hem inloggen (setten van een sessievariabele in de meeste gevallen).
Gewijzigd op 01/01/1970 01:00:00 door malick heuvel
Naast de controle hash, zou je in de cookie ook het id van de gebruiker op kunnen slaan. Op index.php kun je dan aan de hand van het id de hash uit de database ophalen en deze vergelijken met de hash uit de cookie. De hash is telkens random, zoiets als:
en wordt aangemaakt bij het inloggen als de 'remember me' functie aangevinkt is.
Als de controle klopt, kun je de gebruiker inderdaad doorsturen naar de beveiligde index. Zorg er natuurlijk wel voor dat de gebruiker ook ingelogd wordt, dus afhankelijk van je loginsysteem bijvoorbeeld een bepaalde sessievariabele aanmaken...