login & passwortschutz skript überarbeitet - eure meinung sicherheitslücken

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • login & passwortschutz skript überarbeitet - eure meinung sicherheitslücken

    so nun habe ich mein login & passwortschutz skript überarbeitet,
    und würde gerne eure meinung betreffend sicherheitslöcher hören.

    die indexseite mit dem loginformular:
    PHP-Code:
    <?PHP
    session_start
    (); // session starten
    if(isset($_POST['submit'])) // wenn gesendet
    {
    include(
    "config.php"); // die datenbankverbindung
    // no injection start
    $benutzer stripslashes($_POST['benutzer']);
    $benutzer mysql_real_escape_string($benutzer);
    $passwort stripslashes($_POST['passwort']);
    $passwort mysql_real_escape_string($passwort);
    // no injection ende
    // datenbankabfrage start
    $abfrage "SELECT * FROM bentab WHERE (benutzerzugang = '$benutzer') AND (passwortzugang = '$passwort')";
    $ergebnis mysql_query($abfrage) or die(mysql_error());
    $row mysql_fetch_array($ergebnis);
    if( 
    mysql_num_rows($ergebnis) == 1// ueberprueft anzahl der datensätze die zurueckkommen
        
    {
        echo 
    "Login OK";
        
    $_SESSION['logstatus']=1;
        }
      else
        {
        echo 
    "Keine Zugangsberechtigung!";
        }
    }
    // datenbankabfrage ende
    ?>
    <html>
    <head>
    </head>
    <body>
    <?PHP
    if($_SESSION['logstatus'] != 1)
        {
        include(
    "loginformular.php");
        }
         else
        {
        echo
    "<a href=\"kunde1.php\">zum kundenbereich</a>";
        echo
    "<a href=\"logout.php\">logout </a>";
        }
    ?>
    </body>
    </html>
    das formular das oben per include eingefügt wird:
    PHP-Code:
    <form name="form1" method="post" action="<?php print $PHP_SELF?>">
    <input name="benutzer" type="text" id="benutzer" value="<?php print $user?>" size="40" maxlength="40"><br />
    <input name="passwort" type="text" id="passwort" value="<?php print $pass?>" size="40" maxlength="40"><br />
    <input name="submit" type="submit" id="submit" value="Senden"></form>
    auf jeder seite die geschützt sein sollte folgendes script:
    PHP-Code:
    <?PHP
    session_start
    ();
    if (
    $_SESSION["logstatus"]!=1){
    header("Location:index.php");     
     exit;
    }
    ?>
    und hier noch die mysql tabelle:
    [color="green"]CREATE TABLE bentab (
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    benutzerzugang VARCHAR(30),
    passwortzugang VARCHAR(30),
    benutzerstatus INT,
    kundenid INT,
    datum DATETIME
    );[/color]

  • #2
    Hi,

    in deiner DDL hast du für die felder passwortzugang und benutzerzugang
    einen varchar(30) gewählt. In deinem form kann man maximal
    40 zeichen eingeben. Du überprüfts auch nicht php-seitig die
    länge. Das kann dazu führen, dass man sich mit
    richtigen daten einloggen will, aber das system den zutritt
    verweigert weil nicht die vollen informationen in der db stehen.

    greets
    (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

    Kommentar

    Lädt...
    X