Benutzerdefinierte Suche

Benutzeridentifizierung mit PHP für Folgeseiten

  1. Maestro74

    Maestro74 Thread StarterMacUser Mitglied

    Mitglied seit:
    31.03.2003
    Beiträge:
    76
    Zustimmungen:
    0
    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
     
    Maestro74, 15.11.2005
  2. Ulfrinn

    UlfrinnMacUser Mitglied

    Mitglied seit:
    30.01.2005
    Beiträge:
    6.684
    Zustimmungen:
    588
    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.
     
    Ulfrinn, 15.11.2005
  3. dms

    dms

    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

    DeineMuddaunregistriert

    Mitglied seit:
    12.05.2005
    Beiträge:
    852
    Zustimmungen:
    72
    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.
     
    DeineMudda, 15.11.2005
  5. hossa

    hossaMacUser Mitglied

    Mitglied seit:
    03.04.2005
    Beiträge:
    309
    Zustimmungen:
    0
    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)
     
    hossa, 15.11.2005
  6. wegus

    wegusMacUser Mitglied

    Mitglied seit:
    13.09.2004
    Beiträge:
    14.982
    Zustimmungen:
    1.545
    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!
     
    wegus, 15.11.2005
  7. Maestro74

    Maestro74 Thread StarterMacUser Mitglied

    Mitglied seit:
    31.03.2003
    Beiträge:
    76
    Zustimmungen:
    0
    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.
     
    Maestro74, 15.11.2005
  8. TerminalX

    TerminalXMacUser Mitglied

    Mitglied seit:
    12.01.2004
    Beiträge:
    1.798
    Zustimmungen:
    108
    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. :)
     
    TerminalX, 15.11.2005
  9. Jakob

    JakobMacUser Mitglied

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

    dms

    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
  1. mampfi
    Antworten:
    7
    Aufrufe:
    284
  2. simusch
    Antworten:
    2
    Aufrufe:
    188
    simusch
    04.05.2017
  3. Saugkraft
    Antworten:
    27
    Aufrufe:
    1.618
  4. alex1000
    Antworten:
    5
    Aufrufe:
    359