1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Variable löschen

  • osiris
  • 4. Juni 2008 um 13:20
  • Unerledigt
  • osiris
    8
    osiris
    Mitglied
    Punkte
    695
    Beiträge
    109
    • 4. Juni 2008 um 13:20
    • #1

    Hallo,

    ich habe ein kleines Problem beim Löschen einer Variable in PHP.
    Und zwar geht es um Folgendes:

    Nehmen wir mal an, man registriert sich z.B. in einem Forum und bekommt sein Login-Passwort dann nicht per Mail zugesandt, sondern im Browser angezeigt.

    Das heißt, man sieht es nur einmal, merkt es sich und gut ist.
    Wenn das ganze Prozedere per TLS läuft, kann man sich schön sicher sein, dass nur der Nutzer selbst das Passwort weiß.

    Aber, da gibt es ein Problem: Wenn der Nutzer jetzt nachdem er das Passwort bekommen hat, einfach fröhlich weitersurft und ihm dann einfällt, dass er mal auf's Klo muss, könnte ein Angreifer einfach im Verlauf zurückschalten und würde das Passwort zu sehen bekommen.
    Denn den Bildschirm hat unsere Testperson natürlich nicht gesperrt.

    Die Frage ist jetzt: Wie macht schafft man es, dass das Passwort bei Zurückschalten oder Neuladen nicht mehr angezeigt wird, ohne mit $_SESSION zu arbeiten.
    Denn wenn jemand Cookies ausgeschalten hat, könnte ein Angreifer evtl. im Querystring in der Adresslseite Hinweise darauf finden, wie er wieder an das verbrogende Passwort kommt.

    Es geht also schlicht darum eine Variable richtig zu löschen. Mit unset() scheint das nicht zu funktionieren und auch alle möglichen $xyz=NULL bringen nichts.

  • Paulchen
    1
    Paulchen
    Gast
    • 4. Juni 2008 um 13:21
    • #2

    Wo wird denn das Passwort im Klartext abgelegt?

  • osiris
    8
    osiris
    Mitglied
    Punkte
    695
    Beiträge
    109
    • 4. Juni 2008 um 14:03
    • #3

    In einer Variable, z.B. $password.
    In der DB liegt das dann als MD5-Hash.

  • Paulchen
    1
    Paulchen
    Gast
    • 4. Juni 2008 um 14:08
    • #4
    Zitat von osiris

    In einer Variable, z.B. $password.

    Und wenn du die Seite nochmal aufrufst, wo kommt $password dann her?

  • spinball
    11
    spinball
    Mitglied
    Reaktionen
    67
    Punkte
    1.192
    Beiträge
    223
    • 4. Juni 2008 um 14:09
    • #5

    Wenn dein PHP-Programm fertig ist und die generierte Seite in HTML an den Benutzer geschickt wurde, hat er sie im Cache. Du hast keinen direkten Zugriff darauf, ob der Zielcomputer sich die Seite cached oder nicht. Mit HTML-Meta-Tags kannst du ihn darum bitten, aber nicht zwingen.

    Ansonsten könntest du jedem Benutzer eine Boolsche-Variable zuweisen, die speichert, ob er sein Passwort bereits gesehen hat. Nach erfolgreicher Registrierung wird das Passwort nur angezeigt, falls die Variable false ist. Und danach setzt du sie auf true. So stellst du sicher, dass dein Programm das Passwort nur einmal ausgibt, und bei späteren Aufrufen mit gleichen Parametern nie wieder. Aber das schützt nicht davor, falls der Benutzer die Seite lokal gespeichert hat.

  • osiris
    8
    osiris
    Mitglied
    Punkte
    695
    Beiträge
    109
    • 4. Juni 2008 um 14:25
    • #6
    Zitat von Paulchen

    Und wenn du die Seite nochmal aufrufst, wo kommt $password dann her?

    Das frag ich mich ja auch. Ich habe sogar den Cache gelert und das nochmal versucht. Da hat der immer noch $passwort ausgegeben, sowohl bei zurückschalten als auch bei Reload.

  • osiris
    8
    osiris
    Mitglied
    Punkte
    695
    Beiträge
    109
    • 4. Juni 2008 um 14:51
    • #7

    Ich hab das jetzt so gelöst, dass in der DB abgecheckt wird, ob es für den Nutzer schon ein Passwort gibt.
    Wenn nicht, wird es generiert und angezeigt. Wenn ja (was beim Reload oder Zurückschalten dann der Fall ist), passiert nichts. :grinning_squinting_face:

  • Maximilian Rupp 27. Dezember 2024 um 12:04

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung