login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Veiligheid

Offline SvenP - 26/04/2005 15:37
Avatar van SvenPPHP interesse Waneer is een loginscript pas echt veilig?
  1. <?php
  2. if(isset($session)){
  3. echo "<table width=\"90%\" cellSpacing=\"0\" cellPadding=\"2\" border=\"1\" bordercolor=\"#000000\" style=\"border-collapse: collapse\" align=\"center\">";
  4. echo "<tr><td colspan=\"2\" height=\"10\" class=\"title\"><img src=\"images/$skin/button.gif\" border=\"0\" height=\"8\" width=\"8\"> <b>Error</b></td></tr>";
  5. echo "<tr><td class=\"content\">Je bent al ingelogd, Dit hoeft geen twee keer te gebeuren. <a href=\"index.php?p=logout\">(loguit)</a></td></tr></table>";
  6.  
  7. }else{
  8. if($_SERVER['REQUEST_METHOD'] == 'POST'){
  9. $query = "SELECT * FROM `members` WHERE `username`='" . $_POST["username"] ."' AND `password`='". md5($_POST["password"]) . "'";
  10.  
  11. $result = mysql_query($query);
  12.  
  13. if(mysql_num_rows($result) != 0){
  14. $user = $_POST["username"];
  15. $password = $_POST["password"];
  16. $_SESSION['a4o'] = $user;
  17. $_SESSION['password'] = $password;
  18.  
  19. echo "<table width=\"90%\" cellSpacing=\"0\" cellPadding=\"2\" border=\"1\" bordercolor=\"#000000\" style=\"border-collapse: collapse\" align=\"center\">";
  20. echo "<tr><td class=\"title\"><img src=\"images/button.gif\" border=\"0\" height=\"8\" width=\"8\"> <b>Login</b></td></tr><tr><td class=\"content\">Je bent met succes ingelogd!</td></tr><meta http-equiv=\"refresh\" content=\"1; url=index.php\">";
  21. echo "</table>";
  22.  
  23. }else{
  24. echo "<table width=\"90%\" cellSpacing=\"0\" cellPadding=\"2\" border=\"1\" bordercolor=\"#000000\" style=\"border-collapse: collapse\" align=\"center\">";
  25. echo "<tr><td class=\"title\"><font color=\"BD0000\"><b>Error!</b></font></td></tr><tr><td class=\"content\">Voorkomende redenen:<br>";
  26. echo "<blockquote>Verkeerde gebruikersnaam of wachtwoord<br>Velden niet ingevuld</blockquote><br>Probeer opnieuw";
  27. echo "</td></tr></table>";
  28. }
  29. }else{
  30. ?><FORM ACTION="<? $_SERVER["PHP_SELF"] ?>" METHOD="POST"><?
  31. echo "<table width=\"90%\" cellSpacing=\"0\" cellPadding=\"2\" border=\"1\" bordercolor=\"#000000\" style=\"border-collapse: collapse\" align=\"center\">";
  32. echo "<tr><td colspan=\"2\" height=\"10\" class=\"title\"><img src=\"images/$skin/button.gif\" border=\"0\" height=\"8\" width=\"8\"> <b>Gebruiker Login</b></td></tr>";
  33. echo "<tr><td bgcolor=\"$header_color1\" width=\"200\" class=\"content\">Gebruikersnaam:</td>";
  34. echo "<td bgcolor=\"$header_color1\" class=\"content\"><input type=\"text\" name=\"username\" style=\"width: 250px\"></td></tr>";
  35. echo "<tr><td bgcolor=\"$header_color1\" width=\"200\" class=\"content\">Wachtwoord:</td>";
  36. echo "<td bgcolor=\"$header_color1\" class=\"content\"><input type=\"password\" name=\"password\" style=\"width: 250px\"></td></tr>";
  37. echo "<td bgcolor=\"$header_color1\" colspan=\"2\" class=\"content\"><input type=\"submit\" name=\"submit\" value=\"Login\" style=\"width: 100px\"></td></tr>";
  38. echo "</table>";
  39. echo "</form>";
  40. } }
  41. ?>

is wat ik heb...
waar en hoe zou ik het veiliger kunnen maken?
(zou voor iedereen mss goed hulp-topic kunnen zijn)

6 antwoorden

Gesponsorde links
Offline gijs - 26/04/2005 15:45
Avatar van gijs HTML beginner ik weet niet hoe je de verbinding met je database legt, maar dat is ook niet helemaal veilig als je dat 'er gewoon boven typt'. Die kan je volgens mij het beste includen met een *.php.inc bestand.
Offline legende - 26/04/2005 16:28
Avatar van legende Onbekend Als je het echt veilig wilt hebben, moet je ipv sessies een mySQL table gebruiken van wie er ingelogd is enzo.
Offline Steven - 26/04/2005 16:32 (laatste wijziging 26/04/2005 16:33)
Avatar van Steven HTML interesse Dit is al wat veiliger, deze code plaats je in login.php.inc

  1. <?php
  2. function mysql_verbinden(){
  3. if (@mysql_connect("localhost", "gebruikersnaam", "w8woord") !== false)
  4. $connect = mysql_select_db("databasenaam");
  5. else
  6. $connect = false;
  7. if (!$connect)
  8. die("Kan geen verbinding met de database maken, onze excuses.");
  9. }
  10. ?>


en die include je dan op je login pagina:

  1. <?php include("login.php.inc"); ?>
Offline gijs - 26/04/2005 19:14
Avatar van gijs HTML beginner @ Steven: zie mijn post hierboven.. 
Offline Gerard - 26/04/2005 19:21
Avatar van Gerard Ouwe rakker Het maakt ook echt uit of je een login naar MySQL in een aparte file zet of ergens boven zet..... het is alleen wat handiger.

Zolang je maar zorgt dat je alles wat afvangt als je niet wil dat de gebruiker wat te zien krijgt als het niet werkt.
Offline Klopper - 26/04/2005 20:16
Avatar van Klopper HTML interesse aanvulling op de login.inc.php-methode...
Zet dit bestand buiten je publieke html-map. En include dan het bestand via ../login.inc.php . Als php toevallig een keer uitgeschakeld wordt, en of wordt genegeerd door de browser van de lezer, kan die de wachtwoorden eruit halen. En als je hem buiten je publieke html-map hebt staan, zal de 'inbreker' het bestand ook niet kunnen vinden. Ook zal hij geen bestand op de server kunnen plaatsen zodat hij de informatie alsnog kan uitlezen.
Het is misschien raar uitgelegd, maar als je het eenmaal snapt, denk je van; tuuuurlijk, klinkt logisch!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.434s