Ankündigung

Einklappen
Keine Ankündigung bisher.

POST Fehler

Einklappen

Neue Werbung 2019

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

  • POST Fehler

    Hallo Zusammen,

    ich beschäftige mich erst seit kurzem mit php. Jetzt habe ich folgendes Problem:

    Ich habe eine Homepage mit geschütztem login Bereich erstellt. Das HTML Formular wird mittels POST abgerufen. Jetzt habe ich das Problem, dass die Daten wie Username und Passwort im klartext in der Adresszeile übergeben werden, obwohl POST dies doch eigentlich im header machen sollte. Kann mir jemand helfen? Bzw. gibt es eine andere Möglichkeit das Passwort sicher zu übergeben?

    Vielen Dank schonmal.

    Code:
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>RDP- Verwaltung GSdata business </title>
    </head>
    <link href="blau.css" rel="stylesheet" type="text/css" />
    <body>
    <div class="frame" align="center">
    <div class="head" align="center">
    <div class="title">
    <h1> Kundenverwaltung </h1>
    </div>
    <div class="logo" >
    <img src="img/gs_trans.gif" width="200Px" height="144Px"  alt=""/>
    </div>
    </div>
    <div class="textbox" align="center"> <h1> Login-Bereich</h1>
      <p>&nbsp;</p>
      <p>&nbsp;</p>
      <p>&nbsp;</p>
      <form action="login.php" action="POST"/>
      <table width="150" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td><p>Benutzername:	</p></td>
        <td><input type="text" name="username" /></td>
      </tr>
      <tr>
      <td>&nbsp;</td>
      </tr>	
      <tr>
        <td><p>Passwort:		</p></td>
        <td><input type="password" name="password" /></td>
      </tr>
    </table>
    <p><input type="submit" value="Login"/></p>
    </div>
    </body>
    </html>
    PHP-Code:
    <?php
    session_start
    ();
    ?>

    <?php
    include 'db_connect.php';
    $username $_POST["username"];
    $password md5($_POST["password"]);

    $abfrage "SELECT username, password FROM user WHERE username LIKE '$username' LIMIT 1";
    $ergebnis mysql_query($abfrage);
    $row mysql_fetch_object($ergebnis);

    if(
    $row->password == $passwort)
        {
        
    $_SESSION["username"] = $username;
        echo 
    "Login erfolgreich. <br> <a href=\"home.html\">Geschützer Bereich</a>";
        
    sleep(3);
        
    header("Location: home.php"); /* Browser umleiten */
        
    exit;
        }
    else
        {
        echo 
    "Benutzername und/oder Passwort waren falsch. <a href=\"index.php\">Login</a>";
        
    sleep(4);
        
    header("Location: index.html");
        exit;
        }

    ?>


  • #2
    Du schreibst action="post" statt method="post". method ist daher nicht gesetzt und verwendet den Standardwert (get). Außerdem fehlt dein schließendes </form>-Tag

    Kommentar


    • #3
      Ach Mist. Entschuldige für die dumme Frage.

      Dankeschön.

      Kommentar


      • #4
        Vielleicht nochmal als Tipp:

        http://php.net/manual/de/function.mysql-connect.php

        Roten Kasten beachten

        Kommentar


        • #5
          Nur der Vollständigkeit halber:
          • mysql_ ist veraltet um auf deine MySQL-Datenbank zuzugreifen solltest du mysqli_ oder PDO benutzen
          • Deine Query ist anfällig für SQL injection
          • md5 ist nicht für das Hashen von Passwörtern geeignet.
          • Nutze während der Entwicklung grundsätzlich error_reporting(E_ALL) und beachte alle Notice Meldungen!
          • Deine header-Funktion steht an der falschen Stelle (beachte auch die Leerzeile zwischen den beiden PHP Abschnitten!)
          • Das sleep ist sinnlos


          PS: Auch bei Post werden die Daten im Klartext übergeben
          mysql ist veraltet Mails senden: Ohne Probleme und ohne mail()
          PHP-Code:
          echo 'PS: <b>Meine Antwort ist keine Lösung, sondern nur eine Hilfe zur Lösung.</b>'

          Kommentar


          • #6
            Ich danke euch vielmals für eure Hilfe. Ich werde mich dann jetzt erstmal mit den von euch aufgeführten Fehlern und Sicherheitslücken beschäftigen.

            Vielen Dank

            Kommentar


            • #7
              Eine Frage hätte ich noch. Gibt es irgendeine Möglichkeit, das Passwort nicht im Klartext an das Script zu übergeben? Wenn ja, welche?

              Danke

              Kommentar


              • #8
                Der Klassiker ist da SSL (https).
                Alles andere wird Aufwändig und ist auch nicht 100%ig sicher.
                Standards - Best Practices - AwesomePHP - Guideline für WebApps

                Kommentar

                Lädt...
                X