login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Login systeem veilig?

Offline Luc18 - 05/11/2010 18:40
Avatar van Luc18Onbekend Goede avond allemaal,

Ik ben bezig met een login systeem te bouwen die gebruikt maakt van cookie's en sessie's

Dit is mijn vraag: Is deze check of je bent ingelogd veilig genoeg?

  1. <?php
  2. function login_check()
  3. {
  4. if(isset($_COOKIE['gebruikersnaam']) && isset($_COOKIE['IP']) && isset($_COOKIE['ID']) && isset($_COOKIE['site']) && isset($SESSION['gebruikersnaam']) && isset($_SESSION['IP']))
  5. {
  6. if($_COOKIE['gebruikersnaam'] == $SESSION['gebruikersnaam'] && $COOKIE['IP'] == SESSION['IP'] && $_COOKIE['site'] == $site)
  7. {
  8. $ip_data = connectie()->query("SELECT in_lo_gebruikersnaam,in_lo_IP,in_lo_id,in_lo_datum FROM inlog_logs WHERE in_lo_gebruikersnaam='".invoer($_SESSION['gebruikersnaam'])."' ORDER BY ID DESC");
  9. $ip = $ip_data->fetch_assoc();
  10.  
  11. $datum = date("d-m-Y");
  12. if($ip['in_lo_gebruikersnaam'] == $_SESSION['gebruikersnaam'] && $ip['in_lo_IP'] == $_SESSION['IP'] && $ip['in_lo_id'] == $_COOKIE['ID'] && $ip['in_lo_datum'] == $datum)
  13. {
  14. RETURN TRUE;
  15. }
  16. else
  17. {
  18. setcookie ("gebruikersnaam", "", time() - 3600);
  19. setcookie ("IP", "", time() - 3600);
  20. setcookie ("ID", "", time() - 3600);
  21. setcookie ("site", "", time() - 3600);
  22.  
  23. unset($_SESSION['gebruikersnaam']);
  24. unset($_SESSION['IP']);
  25. RETURN FALSE;
  26. }
  27. }
  28. else
  29. {
  30. setcookie ("gebruikersnaam", "", time() - 3600);
  31. setcookie ("IP", "", time() - 3600);
  32. setcookie ("ID", "", time() - 3600);
  33. setcookie ("site", "", time() - 3600);
  34.  
  35. unset($_SESSION['gebruikersnaam']);
  36. unset($_SESSION['IP']);
  37. RETURN FALSE;
  38. }
  39. }
  40.  
  41. else if(isset($_COOKIE['gebruikersnaam']) && isset($_COOKIE['IP']) && isset($_COOKIE['ID']) && isset($_COOKIE['site']))
  42. {
  43. $ip_data = connectie()->query("SELECT in_lo_gebruikersnaam,in_lo_IP,in_lo_id,in_lo_datum FROM inlog_logs WHERE in_lo_gebruikersnaam='".invoer($_SESSION['gebruikersnaam'])."' ORDER BY ID DESC");
  44. $ip = $ip_data->fetch_assoc();
  45.  
  46. $datum = date("d-m-Y");
  47.  
  48. if($ip['in_lo_gebruikersnaam'] == $_COOKIE['gebruikersnaam'] && $ip['in_lo_IP'] == $_COOKIE['IP'] && $ip['in_lo_id'] == $_COOKIE['ID'] && $ip['in_lo_datum'] == $datum)
  49. {
  50. $_SESSION['gebruikersnaam'] = $_COOKIE['gebruikersnaam'];
  51. $_SESSION['IP'] = $_COOKIE['IP'];
  52.  
  53. RETURN TRUE;
  54. }
  55. else
  56. { setcookie ("gebruikersnaam", "", time() - 3600);
  57. setcookie ("IP", "", time() - 3600);
  58. setcookie ("ID", "", time() - 3600);
  59. setcookie ("site", "", time() - 3600);
  60.  
  61. unset($_SESSION['gebruikersnaam']);
  62. unset($_SESSION['IP']);
  63. RETURN FALSE;
  64. }
  65. }
  66.  
  67. else
  68. {
  69. setcookie ("gebruikersnaam", "", time() - 3600);
  70. setcookie ("IP", "", time() - 3600);
  71. setcookie ("ID", "", time() - 3600);
  72. setcookie ("site", "", time() - 3600);
  73.  
  74. unset($_SESSION['gebruikersnaam']);
  75. unset($_SESSION['IP']);
  76. RETURN FALSE;
  77. }
  78. }
  79. ?>


ID wordt automatisch gegenereerd en opgeslagen in de database.

Ik hoop dat jullie me kunnen vertellen of deze veilig is, of wat er nog toegepast moet worden..

Met vriendelijke groet,

Luc

4 antwoorden

Gesponsorde links
Offline Hend - 05/11/2010 18:46
Avatar van Hend Lid in plaats van unset ...
kan je ook session_destroy() gebruiken
dan wordt alles leeg gemaakt van de sessie
Offline Luc18 - 05/11/2010 21:20
Avatar van Luc18 Onbekend Bedankt voor de tip. Maar is de code verder wel veilig? Of wat kan er nog beter/veiliger aan?

Met vriendelijke groet,

Luc
Offline Kevin - 06/11/2010 12:02 (laatste wijziging 06/11/2010 12:05)
Avatar van Kevin Crew Ajax/REST Heb er snel even naar gekeken, het ziet er mij wel OK uit. Ik heb natuurlijk wel niet getest of alles vlekkeloos verloopt.

Wat ik wel een beetje raar vind is dat je zowel met sessies als met cookies werkt? Ik zou gaan voor 1 van de 2.
En wat ik persoonlijk ook meestal doe bij een cookie, is definiëren wat het path is van de cookie en het domein.
bv
  1. setcookie("Cookiename", $value, time()+3600, "/~bla/", ".bla.be", 1);


Wat misschien ook handig is naar toekomst toe is dat je lange stukken code op http://www.plaatscode.be/ zet 
Offline Luc18 - 06/11/2010 18:47
Avatar van Luc18 Onbekend Wat ik nog niet echt snap is het volgende:

de 1 helemaal achteraan in een cookie, waar is het voor, ik weet dat ik het op 0 of 1 kan zetten. Maar snap verder het nut er niet van.

De reden dat ik met beide werk, is omdat ik vroeger met sessie's werkte. En om dat nu om te bouwen naar cookie's is veel werk, vandaar dat ik met beide werk. En het is ook een klein beetje extra veiligheid bij mijn script.

Het script werkt nu verder gewoon.

Maar kan iemand me dus even duidelijk maken waar die 1 voor is. En waar is het path voor bedoeld? Met domein werk ik al;)
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.191s