Sessions oder nur verschlüsseln?

  • Hallo.

    Hab eine Frage (wer hätte das erwartet?)

    Ich mache seid ein paar Tagen recht viel mit php, javascript und Sql und komme auch schon ziemlich gut zurecht. Versuche dabei soviel wie nur möglich selbst zu machen (bis jetzt eigentlich alles^^).


    Hab nun ein Login erstellt das sogar funktioniert :D. Zuerst hatte ich einfach nur eine Abfrage ob Eingegebener Username und PW entsprechend in der SQL Datenbank gefunden werden konnten.

    Da es jedoch etwas unschön ist wenn da oben Passwort=1234 steht hab ich es nun mit md5() verschlüsselt.

    Man kann nun nicht mehr so einfach das Passwort herauslesen, reicht das aber zur Sicherheit? Wenn man nun einfach den Link nach dem Login herausfindet ist man gleich eingeloggt und könnte irgendwelchen Blödsinn machen oder Sachen sehen die nicht für einen bestimmt sind.

    Hab nun gesehen das Sessions die Alternative wären aber dann müsste ich einigen Code wieder umschreiben :\ (hab schon ein bisschen mehr drin als nur den Login, wäre zwar kein Unding würde aber gerne drauf verzichten) und vor allem fand ich Sessions etwas kompliziert zu verstehen ^^

    Außerdem meine ich Foren gesehen zu haben wo Leute über Google links herausgefischt haben über die sie sich gleich als einen Fremden User einloggen konnten und somit einigen Blödsinn anrichten könnten.

    Mit meinem Laienwissen glaub ich dass diese Seiten auch Sessions verwendeten, sind Sessions also nur die bedingt bessere alternative?

    Oder würde eine Abfrage nach der vergangen Zeit seid dem letzten Login und bei Zeit>paar minuten = Logout reichen? Das Passwort können sie ja durch md5 nicht mehr herauslesen.

    Fragen über Fragen, hab über Google nichts spezielles gefunden bzw. nichts was nicht doch noch etwas zu hoch für mich war, sry :P

  • Wieso benutzt du $_GET für die Formularübergabe?
    Nutze $_POST und man kann das Passwort nicht einlesen.
    Md5 ist mindestens Pflicht, schau dir mal salted Passwörter ein, damit erhöhst du die Sicherheit nochmal zusätzlich

  • Weil ich keine ahnung hatte das es sowas gibt ^^

    hab mir eine Anleitung dafür rausgesucht komme aber noch nicht ganz klar damit

    Wenn ich nun eine Variable ändere ($Passwort=$_Post[Passwort]...)

    $Passwort=md5($Passwort)

    wie trage ich das dann wieder in $_Post ein?
    $_Post[Passwort]=$Passwort geht glaube ich nicht...

  • Wieso solltest du wieder etwas eintragen wollen?
    $_POST ist ein Superglobales Array, welches in allen PHP-Applikationen existiert.
    Du kannst also immer daraf zugreifen.
    Ein verschlüsseltes Passwort wäre also

    Code
    $md5_pw = md5($_POST['passwort']);


    Danach kannst du damit machen, was du willst

  • Sry, dass ich jetzt dreinrede, aber:

    Wie müsste ich das Formular abschicken um das PW verschlüsselt zu schicken? Oder muss ich das nicht machen?

  • Zitat

    Wieso solltest du wieder etwas eintragen wollen?
    $_POST ist ein Superglobales Array, welches in allen PHP-Applikationen existiert.
    Du kannst also immer daraf zugreifen.
    Ein verschlüsseltes Passwort wäre also
    Code:
    $md5_pw = md5($_POST['passwort']);

    Danach kannst du damit machen, was du willst

    Oh, das ich dadran nicht gedacht hab... Doh! ^^

    Gleich mal ausprobieren, scheint aber als ob das genau das wäre was ich gesucht hab... Danke euch allen! :P

  • Hab doch noch ein Problem....

    <form name="Formular" method="post" action="logtest.php">
    ...
    Passwort:<input name="password" type="password" size="10" maxlength="20" style="font-size:8px;">
    ...
    <input type="submit" value="login">
    </form>


    $temp=$password;
    $echo"temp = $temp";

    ausgabe ist das richtige Passwort

    $temp=$_Post['Password'];
    $echo"temp = $temp";

    Ausgabe
    temp =

    und nichts... auf logtest.php kann ich auf $Password zugreifen ohne es vorher mit $_post zu laden, auf $_post kann ich dagegen gar nicht zugreifen, egal auf welcher Seite

    was ich mich nun schon wieder falsch ^^?...

  • Ein paar Schönheitsfehler:

    1. Es heißt $_POST
    2. Der Index ist 'password' und nicht 'Password'
    3. Was ist $echo ?

    Vermutlich kannst du auf $password zugreifen, weil du in der php.ini register_globals an hast, was eine erhebliche Sicherheitslücke darstellt.

  • War nicht direkt kopiert ^^

    eine php.ini hab ich gar nicht da ich einen free hoster nutze aber sobald ich auf einen Link klicke ist $password geschweige denn $_POST['Password'] nicht benutzbar

    ($_POST Sowieso nicht) egal was ich rumprobiere, bin schon fast am verzweifeln <,<...

  • doh... wenn ich einen anderen Variablennamen benutze funktioniert auch $_post ^^...

    Aber das Problem das der Post inhalt beim klicken eines Links verschwindet bleibt

  • Schon herausgefunden das Post nur über Formulare übertragen wird...

    Also mach ich mich mal an Sessions... <,<

  • Das hätte ich dir auch vorher sagen können :)

    $_POST = Formulare, da diese über POST übertragen werden
    $_GET = URL
    $_SESSION = Session
    $_COOKIE = Cookie
    $_SERVER = Servervariablen