cookies & passwords

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Malick heuvel

malick heuvel

20/12/2007 15:25:00
Quote Anchor link
hoi beste PHPers,

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

?>


in mijn login script haal ik de cookie gegevens van de pc en stop ze als values in de tekstvelden:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>
?>


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

PHP hulp

27/04/2024 01:41:22
 
Joren de Wit

Joren de Wit

20/12/2007 15:38:00
Quote Anchor link
Een md5 hash is niet terug te draaien, dus dat gaat je niet lukken. Daarnaast sla je nooit wachtwoorden op in cookies of sessies, dat brengt namelijk een groot veiligheidslek met zich mee!

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).
 
Malick heuvel

malick heuvel

20/12/2007 15:46:00
Quote Anchor link
bedankt blanche voor je reactie ik heb nu twee secties code een members en een nonmmembers area. In mijn opzet gaat iedereen naar index.php waarna men kan inloggen in login.php en daarna wordt men via HTTP headers doorgestuurd naar het members-index.php gedeelte. Hier kan men bijv. profiel bekijken en uitloggen. Als ik het goed begrijp moet ik dus in index.php een check hebben waarbij word gecontroleerd of de cookie er is en of de md5 hash overeen komt met die ik in mijn db heb voor 1 gebruiker zoja dan moet ik in index.php direct een HTTP redirectie bouwen naar member-index.php. Maar regelmatig kom ik op het web tegen dat men sites kan bezoeken waarbij de gebruiker wordt herinnert en zijn/haar password in de tekstvelden. Hoe doen ze het in zo een opzet ? alvast bedankt voor de hulp
Gewijzigd op 01/01/1970 01:00:00 door malick heuvel
 
Joren de Wit

Joren de Wit

20/12/2007 15:54:00
Quote Anchor link
Bij formulieren waar ook wachtwoorden onthouden worden is men ofwel zeer onveilig bezig, ofwel heeft de gebruiker zijn browser opdracht gegeven om het wachtwoord te onthouden.

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$hash
= md5(time());
?>

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



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.