login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Veilig?

Offline ikki007 - 16/12/2006 22:41
Avatar van ikki007Gouden medailleGouden medaille

PHP ver gevorderde
Ik gebruik dit om in te loggen, en de 2de om te checken of er ingelogd is.. Is dit veilig?

  1. <?php
  2. if(isset($_SESSION['gebruiker'])) {
  3. header("Location: index.php?pagina=paneel");
  4. exit();
  5. }
  6. elseif($_SERVER['REQUEST_METHOD'] == 'POST') {
  7.  
  8. $gebruikersnaam = cc_input($_POST['gebruikersnaam']);
  9. $wachtwoord = cc_input($_POST['wachtwoord']);
  10. $wachtwoord = md5($wachtwoord);
  11.  
  12. $gebruikerzoeken = mysql_query("SELECT id FROM leden WHERE gebruikersnaam = '$gebruikersnaam' AND wachtwoord = '$wachtwoord'") or die(mysql_error());
  13.  
  14. if(mysql_num_rows($gebruikerzoeken) == 0) {
  15. echo 'De gebruikersnaam en wachtwoord komen niet overeen.';
  16. } else {
  17.  
  18. $_SESSION['gebruiker'] = mysql_result($gebruikerzoeken, 0);
  19. $_SESSION['gebruikersnaam'] = $gebruikersnaam;
  20.  
  21. header("Location: index.php?pagina=paneel");
  22. exit();
  23.  
  24. }
  25. }
  26. ?>
  27. <form action="<?=cc_input($_SERVER['REQUEST_URI'])?>" method="post">
  28. Gebruikersnaam:<br />
  29. <input type="text" name="gebruikersnaam" /><br />
  30. Wachtwoord:<br />
  31. <input type="password" name="wachtwoord" /><br />
  32. <br />
  33. <input type="submit" value="Inloggen" />
  34. </form>


  1. <?php
  2. if(!isset($_SESSION['gebruiker'])) {
  3. header("Location: index.php?pagina=inloggen");
  4. exit();
  5. }
  6. ?>
  7.  
  8. Dit moet ALLEEN voor ingelogde gebruiker zijn..


Is het goed veilig?

10 antwoorden

Gesponsorde links
Offline vinTage - 16/12/2006 22:52
Avatar van vinTage Nieuw lid Als cc_input een functie is die je inputs addslashed of mysql_reall_escape meuked, dan lijkt het me wel safe ja, anders niet.
Offline ikki007 - 16/12/2006 22:55
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
  1. <?php
  2. function cc_input($waarde) {
  3. $waarde = addslashes($waarde);
  4. }
  5. if(version_compare(phpversion(),"4.3.0") == "-1") {
  6. return mysql_escape_string($waarde);
  7. } else {
  8. return mysql_real_escape_string($waarde);
  9. }
  10. }
  11. ?>
Offline ikkedikke - 16/12/2006 23:04
Avatar van ikkedikke PHP expert Ik neem aan dat je van tevoren wel een sessie gestart hebt?
Verder is die cc_input op het wachtwoord niet nodig omdat je daar toch md5 overheen haalt. daar zitten nooit quotes in oid.
Offline remcobers - 16/12/2006 23:12
Avatar van remcobers PHP expert $_SESSION['gebruikersnaam'] = $gebruikersnaam;

Zou ik zelf ff anders doen (heeft weinig met de veiligheid te maken).

Want als ik nu inlog met RemCoBeRs dan zal hij wel inloggen en is dit me gebruikersnaam 
Offline nemesiskoen - 16/12/2006 23:46
Avatar van nemesiskoen Gouden medaille

PHP expert
Authorisatie zonder met ip-adressen te werken is imo zelfmoord. Er is IMO geen veilige manier zonder iets met het ip adres te doen.
Offline Real - 16/12/2006 23:58
Avatar van Real HTML interesse Hoe zou je wat met ip adressen willen doen dan?

Mensen loggen toch ook op andere computers met een ander ip adres in?
Offline nemesiskoen - 17/12/2006 00:36
Avatar van nemesiskoen Gouden medaille

PHP expert
Ja, toch heel eenvoudig mogelijk.

Zijn de login gegevens correct: zet een cookie met randomstring, ip-adres en userid. Maakt toch geen fuck uit dat dat op een andere computer is of niet.
Offline Gerard - 17/12/2006 04:07
Avatar van Gerard Ouwe rakker @ikki007
Die functie van je maakt een klein beetje een foutje. Als magic quotes enabled is ga jij nog eens addslashes() erover gooien. Daarna gooi je nog een keer mysql_(real_)escape_string() erover.

Als ik dus in mijn invoerveld "Koen leeft vooral 's nachts" invoer krijg ik van jouw functie terug; "Koen leeft vooral \\\\\'s nachts".

Ik neem dus aan dat je stripslashes uitvoert als magic_quotes_gpc aanstaat. 
Offline ikki007 - 17/12/2006 09:54 (laatste wijziging 17/12/2006 09:54)
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
@Proximus, dus ik kan beter dit doen:

  1. <?php
  2. function cc_input($waarde) {
  3. $waarde = stripslashes($waarde);
  4. }
  5. if(version_compare(phpversion(),"4.3.0") == "-1") {
  6. return mysql_escape_string($waarde);
  7. } else {
  8. return mysql_real_escape_string($waarde);
  9. }
  10. }
  11. ?>


@vage, kan jij mij dit verder uitleggen en ook uitleggen wat het nut ervan is? ikzelf werk nooit met cookie's  

@remcobers, hoe moet ik hem dan doen  

@ikkedikke, ja de sessie is gestart  
Offline remcobers - 17/12/2006 17:32
Avatar van remcobers PHP expert Nadat je weet of iemand mag inloggen de username uit de database in de sessie stoppen
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.212s