Login bzw Security Problem

Servus zusammen,

ich habe folgendes „Problem“:

über die index.php rufe ich per Fancybox ein Login-Fenster auf (login.php). Username/Passwort zieht sich die login.php aus der security.php. Nach der erfolgreichen Eingabe werde ich weitergeleitet auf die start.php, auf der der geschützte Content dann zu sehen ist. Funktiert alles so wie gewünscht.

Das Problem ist jetzt aber, dass wenn ich direkt den Pfad der start.php über den Browser anwähle, ist diese nicht geschützt.

Meine Frage jetzt: wie kann ich die security.php in die start.php einbinden, sodass das Anzeigen der start.php von dem erfolgreichen Eingegeben der Userdaten abhängig ist?

Der Schutz ist momentan eher schwach, weil wer 1 mal die Userdaten eingetragen hat und auf die start.php weitergeleitet wird, kann den Link dann jedem beliebigen schicken, ohne das die dann Userdaten eintragen müssen.

Hat jemand ne Idee? THX!

// login.php

<?php session_unset();
?\> Text. // security.php <?php session_start();
$\_SESSION['username']=$\_POST['user']; $\_SESSION['userpass']=$\_POST['pass']; $\_SESSION['authuser']=0; if(($\_SESSION['username']=='user') AND ($\_SESSION['userpass']=='pw')) {$\_SESSION['authuser']=1; echo "

Hallo

Eine Möglichkeit wäre, mit der SessionID zu arbeiten. Sobald ein Login stattgefunden hat, speicherst du die SessionID in einer Datenbank. Jede Seite überprüft nun, ob die SessionID in der DB vorhanden ist, falls ja, gilt er als angemeldet. Wichtig ist, dass du diese DB auch wieder aufräumst.

Eine weitere Möglichkeit ist über entsprechende htaccess Dateien zu arbeiten. Unter Windows hilft die web.config enorm weiter.

Gruss Andreas

Danke für deine schnelle Antwort. Hast du da für mich Coding-N00b ein konkretes Beispiel? Hab mit keinem der Dinge bis jetzt gearbeitet…

Servus,
bei dieser Art von Securityproblem kann ich dir leider nicht helfen. Mein Security wissen bezieht sich auf das Sicherheitsgewerbe.
Viel Glück noch,
Hans

Tag auch,

Natürlich ist die start.php nicht geschützt, aber das ist nicht weiter schwierig.
Frage einfach in der start.php ab, ob eine Session existiert, bzw. ob ein Nutzer eingeloggt ist.

Gruß,
Julian

Ich würde mit Sessions arbeiten.
Also wer sich eingeloggt hat, bekommt eine Session, und wird dann an die start.php weitergeleitet.
Diese prüft in den obersten Zeilen als erstes, ob eine aktive Session vorhanden ist.
Falls nein --> zurück zur index.php
Falls Session ok --> weiter im Code.

Da bin ich der falsche Exerte, ich kümmere mich um gewerbliche Sicherheit.

Hallo,
soweit sich mir Ihr Problem erschließt, können Sie Ihre Anforderung so nicht mit PHP abbilden. Problem: alle Seite welche Sie so generieren sind immer „lesbar“, somit ist eine Passwortabfrage zum Schutz von Informationen so nicht realisierbar. Ich könnte mir vorstellen, dass Sie Ihre Aufgabenstellung mit einem geschützten Verzeichnis auf dem Web-Server lösen können, diese Passwortabfrage könne Sie ja dann in die Webseite einfügen…
hier ein Beispiel für htaccess und Apache:
Konfiguration für Apache-Webserver
Wenn Sie einen Apache-Webserver (meistens unter Linux) für Ihre Website verwenden, so existiert dort das Konzept der „.htaccess“-Konfigurationdateien:
Sie erstellen eine „.htaccess“-Datei, in der Sie angeben, welche Benutzer auf welche Bereiche Zugriff haben sollen.
Sie laden diese „.htaccess“-Datei in den Hauptordner Ihrer Webservers hoch.
Sie teilen den zu autorisierenden Benutzern ihre Zugangsdaten (Benutzername und Kennwort) mit, z.B. per E-Mail oder telefonisch.
Benutzer, die auf die in der „.htaccess“-Datei angegebenen Bereiche zugreifen möchten, bekommen im Webbrowser ein Anmeldemaske angezeigt und werden zur Eingabe von Benutzername und Kennwort aufgefordert.
Nur wenn ein Benutzer korrekte Zugangsdaten eingegeben hat, wird der Zugriff auf die Ressource gewährt; anderenfalls wird eine Fehlermeldung angezeigt.
Um erfolgreich eine „.htaccess“-Datei zu erstellen sollten Sie sich mit den Grundlagen dieses Dateiformats vertraut machen, z.B. im dazugehörigen Wikipedia-Artikel oder in dem Benutzerhandbuch zum Apache-Webserver.
a

Hallo

So auf die Schnelle habe ich dir kein Beispiel. Ich programmiere meine Seiten jeweils unter ASP bzw. ASP.NET. Dort geht es relativ einfach.

Viele Grüsse

Andreas

Danke für deine schnelle Antwort. Hast du da für mich
Coding-N00b ein konkretes Beispiel? Hab mit keinem der Dinge
bis jetzt gearbeitet…