login  Naam:   Wachtwoord: 
Registreer je!
 Forum

cookie

Offline bigsmoke - 28/04/2006 17:44
Avatar van bigsmokePHP interesse Kan je steunen bij een inlog systeem op cookies?? Kun je ze vervalsen ik weet dat je ze kan verwijderen maar meer weet ik niet ...

9 antwoorden

Gesponsorde links
Offline Nrzonline - 28/04/2006 17:46 (laatste wijziging 28/04/2006 18:02)
Avatar van Nrzonline PHP ver gevorderde ja, door ze elke keer te laten controleren...
username + bijbehorende pass (md5) in db controleren.
Als ik jouw was, zal ik wat login scripts gan uitpluizen,
zo heb ik het ook geleerd =)

Zodra je het goed hebt gescript, kan je ze niet meer vervalsen
omdat het wachtwoord bij de desbetreffende username dan niet
meer klopt.. Dus is wel safe, maar gebruik wel md5 en input
controles

mijn login-script controle (oud) (in function)
  1. <?
  2. function check_login ()
  3. {
  4. if (isset($_COOKIE['log_username']) && isset($_COOKIE['log_password']))
  5. {
  6. $get_userdetails_sql = "SELECT user_name, user_password FROM phpnrz_users WHERE user_name = '" . $_COOKIE['log_username'] . "'";
  7. $get_userdetails_qry = mysql_query($get_userdetails_sql) or die(mysql_error());
  8. while ($object = mysql_fetch_object($get_userdetails_qry))
  9. {
  10. if ($_COOKIE['log_password'] == $object->user_password)
  11. return TRUE;
  12. else
  13. return FALSE;
  14. }
  15. }
  16. else
  17. return FALSE;
  18. }
  19. ?>


alhoewel deze wel iets is verouderd, i.p.v log_username gebruik
ik tegenwoordig id van een user, bij namechanges gaat ie anders
de user uitloggen..

deze function riep ik als volgt aan:

  1. <?PHP
  2. if (check_login () == TRUE)
  3. {
  4. echo "welkom, u bent ingelogged";
  5. }
  6. else
  7. {
  8. echo "login om verder te gaan"
  9. }
  10. ?>
Offline bigsmoke - 28/04/2006 17:49
Avatar van bigsmoke PHP interesse ja dat begrijp ik maar als je een cookie vb een value geeft van 1 dat de gebruiker die kan verandere in vb 2
Offline Rens - 28/04/2006 17:55
Avatar van Rens Gouden medaille

Crew algemeen
Als je een cookie set, zou ik een aparte MySQL tabel er bij maken.
Je set een cookie met het gebruikersID, en een cookie met een aparte md5 hash.
In de tabel zet je de volgende dingen:
Citaat:
gebruikersID
de hash
IP adres

Dan kun je vervolgens checken of er een cookie is geset, zo niet, dan is de bezoeker niet ingelogd.
Is er wel een cookie geset, ga je kijken of de gebruikersID, en de hash in de tabel staan.
voorbeeldje:
  1. <?PHP
  2. // kijken of er een cookie geset is
  3. // met een gebruikersID
  4. if(!IsSet($_COOKIE['id']))
  5. {
  6. // nee, de gebruiker is sowieso NIET ingelogd
  7. echo "Je bent niet ingelogd.";
  8. } else
  9. {
  10. // ja, er is kans dat de gebruiker ingelogd is
  11.  
  12. // query maken voor checks
  13. $sQuery = "SELECT hash, ip FROM <tabel> WHERE gebruikersID=".MySQL_Escape_String($_COOKIE['id']);
  14. // query uitvoeren
  15. if($rResult = MySQL_Query($sQuery))
  16. {
  17. // checken of de waardes uit de cookies
  18. // kloppen met de waardes uit de tabel
  19. if( (MySQL_Result($rResult, 0, "hash") == $_COOKIE['hash']) && (MySQL_Result($rResult, 0, "ip") == $_SERVER['REMOTE_ADDR']) )
  20. {
  21. // ja, de gebruiker is dus ingelogd
  22. // je kunt nu de sessies e.d. weer setten
  23. echo "Je bent ingelogd.";
  24. } else
  25. {
  26. // nee, de gebruiker is niet ingelogd
  27. echo "Je bent niet ingelogd.";
  28. }
  29. } else
  30. {
  31. // de query word niet uitgevoerd
  32. // een MySQL error op het scherm zetten
  33. }
  34. }
  35. ?>
Offline Nrzonline - 28/04/2006 17:56 (laatste wijziging 28/04/2006 18:01)
Avatar van Nrzonline PHP ver gevorderde @bigsmoke, dan gebeurt er dit:

username(id:1) : nrzonline
userpass(id:1) : norulez
username(id:2) : bigsmoke
userpass(id:2) : rookwalm

jij hebt je geldig ingelogged onder id 2 (bigsmoke), met password
rookwalm. Nu verander jij je id in 1, waadroor je in princype mijn
gebruikersnaam wilt gebruiken. Nu gaat de controle kijken: nrzonline,
pass: rookwalm.. Klopt niet, dus niet meer ingelogged =)
Offline Button - 28/04/2006 18:04
Avatar van Button PHP ver gevorderde en het password zetten jullie dus ook in de cookie maar dan in hash ?
Offline Rens - 28/04/2006 18:10
Avatar van Rens Gouden medaille

Crew algemeen
Het password heb je helemaal niet nodig in de cookie.
Je zet gewoon een hash in de database en een hash in de cookie.
En dan zet je er nog een gebruikersID bij.
Je slaat dus een hash, gebruikersID en IP op in de database.
Daaraan kun je al zien of de bezoeker is ingelogd.
Geen wachtwoord nodig dus...
Offline Button - 28/04/2006 18:13 (laatste wijziging 28/04/2006 18:15)
Avatar van Button PHP ver gevorderde maar die tabel waar die hash, ip en gebruikerID staat is nog een andere dan de tabel met de logingegevens of niet? dus dan heb je eigenlijk twee tabellen.

EDIT: en dan die twee tabellen met elkaar laten linken met het gebruikersID?
Offline Rens - 28/04/2006 18:13 (laatste wijziging 28/04/2006 18:16)
Avatar van Rens Gouden medaille

Crew algemeen
Ja.
Je hebt een tabel leden, en een tabel waar de hash, ip en gebruikersID in staat.

edit; Waarom zou je iets moeten linken?
Je hoeft toch alleen maar het gebruikersID in een sessie te setten?
A.d.h.v. dat gebruikersID kun je dan toch alle benodigde gegevens opvragen die je ooit nodig hebt?
Je hoeft geen wachtwoord, email adres of weet ik wat in een sessie te setten hoor...
Misschien nog het IP adres om session hijacking tegen te gaan.
Offline bigsmoke - 28/04/2006 18:59
Avatar van bigsmoke PHP interesse Ahja op die manier thx
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.216s