Avatar billede casc Nybegynder
23. februar 2005 - 10:45 Der er 3 kommentarer

er dette et gyldigt loginsystem

Hej alle
jeg er ved at lave et login, og jeg kunne godt tænke mig at få noget respons på det! er det sikkert?, kan det laves smartere(givetvis)?, osv..
Det virker fint, men jeg kan ikke se om der skulle være nogen sikkerhedsbrister..

<?php
if (isset($_POST['bruger'])) {
      session_start(); // Lad os begynde!
          $_SESSION["user"] = $_POST["bruger"]; // Gem
          $_SESSION["pass"] = $_POST["pas"]; // Gem                                       
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
    <title>Session1.php</title>
</head>
<body>

<?php
if (isset($_POST['bruger'])) {
//connecte til databasen.
    $link = mysql_connect ('127.0.0.1' , 'brugernavn' , 'password')
            or die ('kunne ikke tilslutte til database  n:    '  . mysql_error());
    mysql_select_db ('hymer') or die ('kunne ikke finde databasen');
   
    //lave en sql forespørgsel..
    $query = "SELECT * FROM login WHERE user = '".$_SESSION['user']."' and pass = '".$_SESSION['pass']."'";
    $result = mysql_query($query) or die ('forespørgsel fejlede:  '  .mysql_error());
   
    $line = mysql_fetch_row($result);
    if  ($line[1] == $_SESSION['user'] && $line[2] == $_SESSION['pass'] )    {
   
    include("udregn.php");
   
    } else {
?>
    <form method="post" action="session.php" >
    <b>Det var ikke rigtigt, prøv igen!</b><br>
    <input type="text" name="bruger"><br>
    <input type="text" name="pas"><br>
    <input type="submit" value="valider">
    </form>
<?php
    }

   
/* Befri resultatet fra hukommelsen */
mysql_free_result($result);

/* Luk forbindelsen */
mysql_close($link);
    }

else
  {
  ?>

<form method="post" action="session.php" >
<b>Skriv dit brugernavn og password!</b><br>
<input type="text" name="bruger"><br>
<input type="text" name="pas"><br>
<input type="submit" value="valider">
</form>

<?php } ?>

</body>
</html>
Avatar billede articfruit Nybegynder
23. februar 2005 - 10:57 #1
spørger du ikke direkte i db'en med det som brugeren har tastet ind? Hvis det er tilfældet kan det være en brist! Træk hellere alt ud fra db'en og tjek så...
Avatar billede casc Nybegynder
23. februar 2005 - 11:18 #2
dvs jeg skal fjerne WHERE user = '".$_SESSION['user']."' and pass = '".$_SESSION['pass']."' fra sql forspørgslen.?
Avatar billede articfruit Nybegynder
23. februar 2005 - 11:50 #3
ja, og så lave et tjek i php i stedet...

Kig på dette... http://activedeveloper.dk/artikler/default.asp?articleid=180
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester