ralf: Sicherheit von Script

Hallo,

ich hab ein Login-Script programmiert und möchte nur wissen ob man es als "sicher" einstufen kann.

Den eingegeben Usernamen und Passwort vergleiche ich mit den Daten in der Datenbank. Sollte die Daten übereinstimmen wird eine Session gespeichert.

if ($_POST["User"]==DATENBANKUSER AND $_POST["Pass"]==DATENBANKPASSWORD) {
   $_SESSION["LOG"]=1;
}

Auf jeder Seite die nun eine User authentifizierung benötigt wird als erstes die Session-Variable abgefragt.

if (!$_SESSION["LOG"]==1) {
  exit;
}

Meint ihr das das sicher ist?

Das ganze System (Datenbankabfrage, authentifiezierung) habe ich über eine Klasse gelöst.

Danke und Gruß

Ralf

  1. du arbeitest doch bestimmt nicht für die fbi ;)

    letztendlich muss dir eines klar sein: der benutzername und das passwort müssen auf irgenteinem wege zum server

    d.h. des eigentliche sicherheitsleck liegt bei der übermittlung

    also am besten vor der übermittlung chiffrieren, natürlich nur einbahnstraße

    ich glaube js unterstützt md5?

    jedenfalls wäre das das erste

    die passwörter dürfen in der datenbank natürlich nicht klar gespeichert werden, immer verschlüsselt
    d.h. das eingegebene passwort wird auch wieder verschlüsselt und dann verglichen

    aber:
    1. das dort oben is zwar kein großer aufwand, aber ich würd mich fragen ob es sich nu wirklich lohnt
    2. hab gehört .htacces soll ziemlich sicher sein

    ich rede schonwieder wirr

    gruß

    1. hi,

      wie war das mit der frage richtig durchlesen :)

      vielleicht hab ichs auch falsch formuliert. wie die daten in der db stehen etc. ist mir schon klar, es ging mir allein um die sicherheit des scripts, also $_POST["Var"] benutzen anstatt $var, ob meine theorie mit der session so funktioniert etc.

      Danke trotzdem

      Gruß

      Ralf

      1. Moin,

        Ich würde dem kein Siegel geben, für das man mich hinterher zu Rechenschaft ziehen kann, aber das trotzdem schonmal als sicher bezeichnen ;)

        Die Verwendung von Superglobals und dem gezielten Zugreifen auf $_POST bringt natürlich schonmal was und durch das Speichern in $_SESSION ist die Information auf den ersten Blick erstmal sicher, da Dir ja nun niemand mehr (auch nicht per Post, was ja auch, wenn auch ein wenig umständlicher, zu manipulieren ist) etwas anderes für den Wert unterschieben kann.

        Niemand? Nunja, das hängt ein wenig von der Konfiguration von PHP ab. Denn bei Standardkonfiguration schreibt PHP die Sessiondaten in ein Verzeichnis, welches für alle Benutzer Lese- und Schreibrechte besitzt (/tmp, /var/tmp etc.). Es empfiehlt sich also grundsätzlich und insbesondere bei sicherheitsrelevanten Applikationen, die Sessiondaten in ein eigenes Verzeichnis schreiben zu lassen (wenn möglich natürlich außerhalb des DOCUMENT_ROOT), um Sessionnaping, böswillig oder versehentlich, zu unterbinden.

        Wenn es vom Wartungsaufwand vertretbar ist, kann natürlich auch die Kombination mit HTTP-Authentication (.htaccess) nicht schaden, zumal dort sogar ggf. (ich kann nicht sagen, ob der Apache dafür mit einem bestimmten Modul kompiliert werden muß) die Möglichkeit besteht, die Abfrage der Benutzerdaten nicht statisch über User- und Groupfile zu handhaben, sondern über eine MySQL-Datenbank zu fahren...