• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Login Script

Bartilo.Heu

Neues Mitglied
Hey Leute,

Ich hab da mal ein Login-Script erstellt aus Tutorials die ich im Internet gefunden hab. Mich würde jetzt interessieren ob man das so lassen kann. Das soll auf einer Firmenwebsite benutzt werden. Dabei sollen die Kunden ein Passwort und einen Benutzernamen bekommen mit dem sie sich dann einloggen können um neue Preislisten o.ä. abzufragen bzw. herrunterzuladen. Es sollte also schon einigermaßen sicher sein.

Würde mich freuen wenn ihr Zeit findet kurz drüber zu schaun. Verbessungsvorschläge sind willkommen.

Hier das Script:


Login:

PHP:
 <?php
session_start();
?>

<?php
$verbindung = mysql_connect("localhost", "root" , "")
or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
mysql_select_db("homepage") or die ("Datenbank konnte nicht ausgewählt werden");

$username = $_POST["username"];
$passwort = md5($_POST["passwort"]);

$abfrage = "SELECT username, passwort FROM login WHERE username LIKE '$username' LIMIT 1";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);

if($row->passwort == $passwort)
    {
    $_SESSION["username"] = $username;
    header("location: geheim.php");
    }
else
    {
    echo "Benutzername und/oder Passwort waren falsch. <a href=\"index.php\">Login</a>";
    }

?>

Geheim:

PHP:
<?php
session_start();
?>
<?php
if(!isset($_SESSION["username"]))
   {
   echo "Bitte erst <a href=\"?lang=de&content=business\">einloggen</a>";
   exit;
   }
?>


Logout:

PHP:
<?php

session_start("username");


$_SESSION = array();


if (ini_get("session.use_cookies")) {
    $params = session_get_cookie_params();
    setcookie(session_name(), '', time() - 42000, $params["path"],
        $params["domain"], $params["secure"], $params["httponly"]
    );
}


session_destroy();
header("location: index.php");
?>
 
Werbung:
Login:
Prüfe, ob überhaupt Post-Daten vorhanden sind
Schleuse den Usernamen durch mysql_real_escape_string
Setze das Passwort ebenfalls in die Bedingung der Abfrage, dann musst du das Passwort nicht mehr prüfen, sondern nur noch, ob es einen Treffer in der DB gab

Geheim
Auf den ersten Blick ok

Logout:
session_start und username?

Stelle von den mysql-Funktionen auf mysqli-Funktionen um
 
oder PDO.

mach dich zum thema sql injection schlau, denn dieses script ermöglicht das (der tipp von bdt600 mit mysql_real_escape_string) ist eine hilfe dagegen.
 
Werbung:
Der Code ist sehr unsicher. Wie meine Vorschreiber schon sagten, Stichwort SQL Injection.

Alles in allem ist es zwar für einen Anfänger gut, und jetzt nichts gegen dich, aber im Alltag sollte man den Code so nicht stehen lassen :D
 
He he, deswegen frage ich ja jetzt nach ;) Ich werde mal versuchen die genannten Punkte einzubauen. Wenn ich das getan hab, ist der Code dann alltagstauglich? Weil ansonsten hat das berichtigen ja nicht unbedingt einen Sinn. Das Ziel ist ja, den zu Anfang genannten Zweck zu erfüllen.
 
Werbung:
Das kommt darauf an, wofür der Code gedacht ist. Für dich? Für eine kleine Hompeage unter Freuden? Für Fremde Personen? Wie viele? :D

....Mich würde jetzt interessieren ob man das so lassen kann. Das soll auf einer Firmenwebsite benutzt werden. Dabei sollen die Kunden ein Passwort und einen Benutzernamen bekommen....

@TE
also die genannten punkte abarbeiten und ich selber habe immer nur nach dem benutzernamen in der DB gesucht und das passwort danach selber in php überprüft ob die eingaben dazu stimmen.
 
Zu einen guten Script gehört eben jede menge mehr.
Hast dich nicht mal schon gewundert warum gute Scripte nicht mit ein paar Zeilen Code erledigt sind sondern oft Haufen weiße Seiten Code beinhalten.

Das Tutorial Script das du gefunden hast ist schon sehr alt dazu relative sehr einfach aufgebaut um eben den User die Grundlagen nahe zu bringen.

Ein Script ist immer nur so sicher wie das Gesamt Paket.
Es bringt also wenig ein gutes Script in eine Homepage einzubinden wenn der Rest der Homepage auf einen schlechten Script passiert.
Das schlechte Script ermöglicht dann wiederum einen zugriff auf Inhalte die man Geheim halten wollte.
Oft braucht der Angreifer nicht mal ein Password einzugeben um auf den Internen Bereich zuzugreifen.
Die suchen sich andere Wege um an die Daten zu gelangen und nutzen expliziert Schwachstellen im Script aus.
Session klau ist noch einer der einfachsten Methoden um nur mal eine genannt zu haben.

Mfg Splasch
 
Werbung:
Zurück
Oben