Sven Rautenberg: PHP/Anwendung und Praxis/Loginsystem

Beitrag lesen

Moin!

Ich hab mir den Artikel gerade das erste mal durchgelesen und bin einigermaßen erschüttert. Vorallem weil der Quelltext selbst Sicherheitslücken aufweist:

session_regenerate_id(); // erneuert die Session-ID,

#                         // erschwert Session-Hijacking


>   
> Inwiefern sollte es gegen Session-Hijacking nützlich sein, bei jedem Request eine weitere gültige Session zu erzeugen? Das ist geradezu eine Einladung für Angriffe dieser Art.  
  
Das Erzeugen einer neuen Session-ID ist ein probates Mittel gegen Session-Fixation - d.h. wenn der Angreifer einem einen Link schickt, der eine vom Angreifer vorbereitete Session fortführt, dann ist es für diesen trotzdem unmöglich, auf der Session mitzusurfen, wenn durch den Login die Session unter einer neuen ID fortgeführt wird.  
  
Die alte Session zu verwerfen ist sicherlich schöner, aber man erhält in ihr ja keine weitergehenden Rechte. Der Login ist in der neuen Session.  
  

> ~~~php

if (! function_exists('crypt') ) {  // es gibt auch noch ältere ...  

>    die ("Sorry: Aber Sie sollten Ihr PHP wirklich updaten!");  
> }

Wieso wird hier kein PHP-Fehler produziert, sondern eine Ausgabe an den Endnutzer vorgenommen? Wieso befinden sich diese Zeilen überhaupt irgendwo mitten im Loginskript und nicht ganz am Anfang oder ausgelagert in einem Unterprogramm, das nur die Systemabhängigkeiten prüft?

Mein Einwand war ja, dass überhaupt keine Alternative zur Passwort-API von PHP (password_hash() etc.) selbstprogrammiert werden sollte. Es gibt die Reimplementierung für PHP 5.3 und 5.4, das sollte reichen.

- Sven Rautenberg

0 48

PHP/Anwendung und Praxis/Loginsystem

Jörg Reinholz
  • selfhtml-wiki
  1. 0

    Link zu: PHP/Anwendung und Praxis/Loginsystem

    Jörg Reinholz
  2. 0
    Matthias Apsel
    1. 0
      Jörg Reinholz
      1. 0
        Matthias Apsel
        1. 0
          Jörg Reinholz
    2. 0
      Sven Rautenberg
      1. 0
        Matthias Apsel
        1. 0
          Sven Rautenberg
          1. 0
            Matthias Apsel
          2. 0
            Matthias Apsel
            1. 0
              Sven Rautenberg
      2. 0
        Jörg Reinholz
        1. 0
          Matthias Apsel
          1. 0
            Jörg Reinholz
            1. 0
              Matthias Apsel
              1. 0
                dedlfix
                1. 0
                  Matthias Apsel
                  1. 0
                    dedlfix
                    1. 0
                      Matthias Apsel
  3. 0
    Sven Rautenberg
    1. 0
      Jörg Reinholz
      1. 0
        Sven Rautenberg
        1. 0
          Jörg Reinholz
          1. 0
            Auge
        2. 0
          Jörg Reinholz
  4. 0
    Matthias Apsel
  5. 0

    Fortschritte I

    Jörg Reinholz
    1. 0
      Jörg Reinholz
      1. 0
        Sven Rautenberg
        1. 0
          Jörg Reinholz
  6. 0
    Paul
    1. 0
      Jörg Reinholz
  7. 0
    1UnitedPower
    1. 0
      Jörg Reinholz
      1. 0
        Matthias Apsel
      2. 0
        1UnitedPower
    2. 0
      Jörg Reinholz
      1. 0
        1UnitedPower
        1. 0
          Jörg Reinholz
      2. 0
        Sven Rautenberg
    3. 0
      Sven Rautenberg
  8. 0

    Rückfrage zum Design der Verwaltung

    Jörg Reinholz
  9. 0
    Paul
    1. 0
      Jörg Reinholz
  10. 0

    Fortschritte II - (Diskussion: Schutz anderer Dateien)

    Jörg Reinholz
    1. 0
      Jörg Reinholz
  11. 0

    Fortschritte III - PHP/Anwendung und Praxis/Loginsystem

    Jörg Reinholz