Benutzeridentifizierung mit PHP für Folgeseiten

Diskutiere mit über: Benutzeridentifizierung mit PHP für Folgeseiten im Web-Programmierung Forum

  1. Maestro74

    Maestro74 Thread Starter MacUser Mitglied

    Beiträge:
    76
    Zustimmungen:
    0
    Registriert seit:
    31.03.2003
    Hallo Leute !

    Ich habe für mein kleines Proggi eine Login Eingabe mit PHP programmiert.
    Der User wird mit UserName und UserPasswort über eine angebundene mySQL Datenbank identifiziert mit Hinterlegung der SessionID. Hat er sich korrekt identifiziert wird die nächste Seite aufgerufen.

    Soweit so gut. Funktioniert auch alles prächtigt. Nun mein Problem.
    Wenn der User nun clever ist und er kennt den Namen der FolgePHP Datei, dann kann er diese aufrufen ohne Identifikationsprüfung. Ich möchte dies nun verhindern.

    Wie kann ich das anstellen, dass die FolgePHP Datei nicht einzeln aufgerufen werden kann, ohne das der User sich identifiziert hat ? Ich will natürlich nicht, dass der User nach der Login Eingabe für jede nachfolgende Seite auch eine LoginEingabe vornehmen muss.

    Bsp:
    Er identifiziert sich über die Login Datei. Alles ok und er kann im Programm arbeiten. Er schließt das Browserfenster und öffnet es danach wieder und gibt den Namen der FolgePHP Datei ein. Jetzt müsste das Proggi sagen, "nein ist nicht, erst über das Login identifizieren lassen"!

    Ich hoffe, dass ich mich verständlich ausgedrückt habe und vielen Dank für Eure Beiträge !

    Herzliche Grüße
     
    Zuletzt bearbeitet: 15.11.2005
  2. Ulfrinn

    Ulfrinn MacUser Mitglied

    Beiträge:
    6.676
    Zustimmungen:
    586
    Registriert seit:
    30.01.2005
    Dafür könntest du die Sitzungen serverseitig verwalten. Beim Aufruf der Folgeseite müssen dann immer Benutzer- und Session-ID angegeben werden. Damit nicht jeder, der die Benutzer- und Session-ID kennt, mit dem Konto des Benutzers Unfug machen kann, solltest du zusätzlich die IP-Adresse protokollieren und prüfen.
     
  3. dms

    dms Gast

    Du arbeitest also mit Sessions, dann ist das doch kein Problem. Auf jeder Seite die geschützt sein soll überprüfst Du ob eine Session existiert bzw. ob die Session einen bestimmten Wert enthält, z.B. $_SESSION['valid_user'] auf true überprüfen. Beim Einlogen setzt Du diesen Wert auf true und fertig. :)
     
  4. DeineMudda

    DeineMudda unregistriert

    Beiträge:
    859
    Zustimmungen:
    72
    Registriert seit:
    12.05.2005
    Huhu,

    Du suchst auf php.net nach
    - session_start()
    - $_SESSION
    und allgemein der Session-Verwaltung.

    "Documentation" ist dein Freund ;)

    Gruß
    DeineMudda

    P.S. Ups, zu spät :D - Aber in deinem Fall würde ich noch behaupten, dass die IP-Adresse nicht relevant ist.
     
    Zuletzt bearbeitet: 15.11.2005
  5. hossa

    hossa MacUser Mitglied

    Beiträge:
    309
    Zustimmungen:
    0
    Registriert seit:
    03.04.2005
    Diesen codeblock setzt du am Anfang (wichtig, davor darf kein anderer code stehen) von jeder zu schützenden Seite:

    PHP:
    <?php
    @session_start();
    if (!
    $_SESSION["user_logedin"]){
      
    header("location: loginmaske.php");
      die;
    }
    ?>
    $_SESSION["user_logedin"] setzt du wenn Benutzername und Passwort stimmt auf 1 (oder true oder was auch immer ;-))... wichtig ist auch, dass "@session_start()" auf jeder Seite steht (auch auf den nicht zu schützenden Seiten)
     
    Zuletzt bearbeitet: 15.11.2005
  6. wegus

    wegus MacUser Mitglied

    Beiträge:
    15.029
    Zustimmungen:
    1.314
    Registriert seit:
    13.09.2004
    Du kannst auch den Apache mit entsprechender Authentifizierung (LDAP,DB, Datei) konfigurieren und die ganz normale htacess-Zugriffsbeschränkung nutzen. Somit ist auch ein Gruppenweiser Zugriff auf bestimmte Bereiche implementierbar!
     
  7. Maestro74

    Maestro74 Thread Starter MacUser Mitglied

    Beiträge:
    76
    Zustimmungen:
    0
    Registriert seit:
    31.03.2003
    Ja, dachte ich ja auch. Ich war der Meinung, dass wenn das Browserfenster geschlossen wird und es danach neu geöffnet wird, dass dann bei "session_start()"; ein neue SessionID vergeben wird. Dies konnte ich aber so nicht feststellen. Somit ist die $_SESSION['valid_user'] immer noch mit 'true' gefüllt.

    Ich hoffe, ich habe mich verständlich ausgedrückt.
     
  8. TerminalX

    TerminalX MacUser Mitglied

    Beiträge:
    1.800
    Zustimmungen:
    108
    Registriert seit:
    12.01.2004
    Wie oben schon erwähnt wurde, einfach bei jedem Seitenaufruf die Session ID überprüfen. Am besten du überprüfst auch die IP Adresse(wurde auch schon oben genannt), da die sich während einer Sitzung normalerweise nicht ändert.

    Was du dir auch noch überlegen musst, ist wie du die Session ID weitergeben möchtest. Es gibt 2 Möglichkeiten:
    1. Cookie, das die Session ID enthält
    2. du hängst die Session ID immer hinten an den Link

    Probleme:
    1. Cookies sind nicht bei jedem aktiviert
    2. immer die Session ID an einen Link anhängen ist viel Arbeit


    PS: Ich habe auch schon einmal so ein Login in Perl/CGI geschrieben. Wollte eigendlich einmal ein Modul draus machen, doch habe im Moment einfach keine Zeit. :)
     
  9. Jakob

    Jakob MacUser Mitglied

    Beiträge:
    1.067
    Zustimmungen:
    21
    Registriert seit:
    05.01.2004
    Wenn Cookies deaktiviert sind, fällt PHP doch automatisch auf die URL+SessionID-Methode zurück, oder?
     
  10. dms

    dms Gast

    Wir sprechen hier aber auch wirklich von "Fenster" und nicht von "Tab", ja? Da bin ich mir nämlich sicher dass wenn Du das Fenster schliesst, der Session-Cookie entfernt wird und somit eine wiederaufnahme der Session nicht möglich ist. Das ganze ist natürlich Browserspezifisch, deswegen lege ich dafür nicht meine Hand in's Feuer. Mir ist jedoch kein Browser bekannt der es nicht so macht.
    Diese Variante verwende ich bei all meinen Admin-Modulen.

    @Jakob
    Nur wenn PHP dafür vorbereitet wurde. PHP muss in dem Fall mit --enable-trans-sid kompiliert worden sein und der php.ini-Wert session.use_trans_sid muss auf true stehen.
     
Die Seite wird geladen...
Ähnliche Themen - Benutzeridentifizierung PHP Folgeseiten Forum Datum
Werte der gleichen Schlüssel summieren (assoziativen Array) Web-Programmierung 25.08.2016
einfaches php. emailformular bei strato Web-Programmierung 08.08.2015
PHP Array in Google Maps Wegpunkte umwandeln Web-Programmierung 13.03.2015
PHP Update auf 5.6 im Terminal für Localhost (MAMP und Laravel) Web-Programmierung 12.09.2014
PHP: Nächster Tag auf Deutsch ausgeben Web-Programmierung 23.01.2014

Diese Seite empfehlen

Benutzerdefinierte Suche