Sicherheit in Sessions (Anmeldesystem)

Don Stefano

Erfahrenes Mitglied
Hallo zusammen,

in meinem Onlineprojekt gibt es einen passwortgeschützten Bereich, wo sich User anmelden müssen. Dieser Bereich besteht dann aus verschiedenen php Dateien, in denen die Session dann immer überprüft wird.

Mein "Problem".

Es gibt einige Seiten, die sowohl in dem nichtgeschützen Bereich als auch nach der Anmeldung mit Passwort zur Verfügung stehen. In dem nichtgeschützten Bereich wird bei Aufruf der Seiten natürlich auch keine Session ID überprüft.

Im geschützten Bereich habe ich das bislang so gemacht. Das heißt: Ich hatte immer 2 Versionen dieser Seiten, bei der einen wurde eben die Session ID überprüft (innerhalb Anmeldung) und bei der anderen (außerhalt der Userverwaltung) nicht.

Das führt aber dazu, dass ich bei Änderungen immer 2 Dateien ändern muss.

Die einfache Frage: Ist es überhaupt notwendig nach der Anmeldung solche Seiten auf Session ID zu prüfen, die eh jeder einsehen können soll? Ist das irgendwie ein Sicherheitsrisiko? Oder kann ich einfach darauf verzichten (was ich am liebsten würde).

Ich hoffe jemand von euch kennt sich damit aus und kann mir helfen.

Vielen Dank
Stefan
 
Eigentlich ist es doch kein großer Aufwand, die Session auch über die nicht geschützten Seiten hinüber zu retten. Du musst doch nur am Anfang der Seite ein:
Code:
session_start();
einfügen.

Dann bleibt dir die Session auf jeden Fall erhalten, auch wenn die Leute wieder in den geschützten Bereich wechseln.

Gruß

Marian
 
Das stimmt, das ist kein Problem außer dass es teilweise html-Dateien sind, die ich dann in php umbenennen müßte.

Geht die Session denn ansonsten verloren, wenn eine Seite zwischendurch ohne

session_start();
aufgerufen wird und dann wieder eine Seite mit der Session-Abfrage kommt ?

Geht das also gar nicht bzw. ist es ein Sicherheitsrisiko? Das weiß ich immer noch nicht ;-)
 
Don Stefano hat gesagt.:
Das stimmt, das ist kein Problem außer dass es teilweise html-Dateien sind, die ich dann in php umbenennen müßte.

und das ist dann mehr Aufwand als zwei Versionen zu pflegen? Interessant ;-)

Geht die Session denn ansonsten verloren, wenn eine Seite zwischendurch ohne

session_start();
aufgerufen wird und dann wieder eine Seite mit der Session-Abfrage kommt ?

ja, weil die nächste Seite nicht mehr weiß, welche Session-ID verwendet wurde. Ein kleines Tutorial dazu findest du hier:

http://www.heddesheimer.de/coaching/php_login.html

Geht das also gar nicht bzw. ist es ein Sicherheitsrisiko? Das weiß ich immer noch nicht ;-)

wo bitte soll jetzt das Sicherheitsrisiko liegen? Es wird immer nur die Session-ID von Seite zu Seite übergeben, entweder über ein Cookie, oder über einen Parameter im Link bzw. im Formular, falls ein Formular verwendet wird.

Falls dein Provider .htaccess Dateien erlaubt, kannst du übrigens einstellen, dass auch html-Dateien als PHP-Skripte erkannt werden:

Code:
AddType application/x-httpd-php .html

das kommt in eine Datei, die du als ".htaccess" im Verzeichnis ablegst, in dem die Dateien liegen (Der Punkt vorne ist wichtig). Wenn es klappt, werden auch PHP-Codes in Dateien erkannt, die die Dateierweiterung .html haben.

Gruß

Marian
 
du könntest doch einfch an jedem Anfang der Datei eine Rechte abfrage machen,
Also müsstest du einfach nur in die Sql tabelle eine Rechte Spalte einfügen und an jeder Php datei eine If funkton, je nachdem ob die Seite dann für jeden oder nur für reg. User einsehbar sein soll, setzt du dann ein Recht vor oder halt auch nicht. So würdest du dir auch die Arbeit mit 2 Versionen ersparen.

Beispiel der Rechte Abfrage:
Code:
if ($data["Rechte"] != 0) // wenn die Rechte nicht Null also z.B 1 sind ist die Site einsehbar
         {
          //content geschützter Bereich
         }
        else
         {
         echo "Sie haben nicht die nötigen Rechte um die Seite aufzurufen.";
         }

gruss Caramba
 
Zurück