Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2007 Teil von Juli

SELFHTML Forumsarchiv
Zugriffskontrolle mittels SESSION

Informationsseite
  1. Seite (PHP) Zugriffskontrolle mittels SESSION von Finalplayer_Ryu, 31. 07. 2007, 14:29
nach unten

Zugriffskontrolle mittels SESSION

Die folgende Nachricht zum Thema stammt von: Finalplayer_Ryu, 31. 07. 2007, 14:29

Ich möchte mittels SESSION eine Zugriffkontrolle machen, dafür habe ich bisher folgenden Code verwendet:

Nach erfolgreichen Login:
session_register("sessid");

Bei den geschützten Seiten:
if(!session_is_registered("sessid")){
 include("error.html");
 die;
}

Nun habe ich aber gelesen, dass session_register und session_is_registered nicht mehr verwenden sollte und was wahrscheinlich noch schlimmer ist, dass ich auf die Daten mittels $_SESSION lese und schreibe.

Nun meine Frage, welche andere Möglichkeit gibt es die oben gezeigte Routine zu lösen?

nach obennach unten

Zugriffskontrolle mittels SESSION

Die folgende Nachricht zum Thema stammt von: Juan, 31. 07. 2007, 14:45

»» Ich möchte mittels SESSION eine Zugriffkontrolle machen, dafür habe ich bisher folgenden Code verwendet:
»»
»» Nach erfolgreichen Login:
»» session_register("sessid");
»»
»» Bei den geschützten Seiten:
»» if(!session_is_registered("sessid")){
»» include("error.html");
»» die;
»» }
»»
»» Nun habe ich aber gelesen, dass session_register und session_is_registered nicht mehr verwenden sollte und was wahrscheinlich noch schlimmer ist, dass ich auf die Daten mittels $_SESSION lese und schreibe.
»»
»» Nun meine Frage, welche andere Möglichkeit gibt es die oben gezeigte Routine zu lösen?

Naja, z.B.
$_SESSION['login'] = false;
 Nach erfolgreichen Login:
$_SESSION['login'] = true;
 if(!$_SESSION['login']){
  include("error.html");
  die;
 }


Grüsse,
  Juan

nach obennach unten

Zugriffskontrolle mittels SESSION

Die folgende Nachricht zum Thema stammt von: Finalplayer_Ryu, 31. 07. 2007, 15:09

»» Naja, z.B.
»» »» $_SESSION['login'] = false;
»» Nach erfolgreichen Login:
»» $_SESSION['login'] = true;
»» if(!$_SESSION['login']){
»»   include("error.html");
»»   die;
»» }
»»

»»
»» Grüsse,
»»   Juan

Ja also erstmal danke, aber nachdem ich nun nicht mehr session_register verwende, muss ich auf jeder Seite die aufgerufen wird, session_start() aufrufen, da er sonst die SESSION-Variablen nicht findet, gehört das so?, oder ist da ein Fehler?

nach obennach unten

Zugriffskontrolle mittels SESSION

Die folgende Nachricht zum Thema stammt von: Juan, 31. 07. 2007, 15:17

Ja also erstmal danke, aber nachdem ich nun nicht mehr session_register verwende, muss ich auf jeder Seite die aufgerufen wird, session_start() aufrufen, da er sonst die SESSION-Variablen nicht findet, gehört das so?, oder ist da ein Fehler?

Es ist richtig. Jede Seite die zur Session gehört, muss mit einem session_start() beginnen.


Grüsse,
  Juan

nach obennach unten

Zugriffskontrolle mittels SESSION

Die folgende Nachricht zum Thema stammt von: Finalplayer_Ryu, 31. 07. 2007, 15:22

»» Ja also erstmal danke, aber nachdem ich nun nicht mehr session_register verwende, muss ich auf jeder Seite die aufgerufen wird, session_start() aufrufen, da er sonst die SESSION-Variablen nicht findet, gehört das so?, oder ist da ein Fehler?
»»
»» Es ist richtig. Jede Seite die zur Session gehört, muss mit einem session_start() beginnen.
»»
»»
»» Grüsse,
»»   Juan

Super, danke, war die letzte Info, die ich gebraucht hatte.

Jetzt weiss ich auch, warum ich teilweise immer wieder Probleme hatte, hab nämlich den Umgang mit SESSION von nem Freund gelernt und anscheinend wusste er auch nicht, dass man die register-Methoden nicht mehr verwenden sollte.

cy, Ryu

nach obennach unten

Zugriffskontrolle mittels SESSION

Die folgende Nachricht zum Thema stammt von: Sven Rautenberg, 31. 07. 2007, 15:39

Moin!

»» Ja also erstmal danke, aber nachdem ich nun nicht mehr session_register verwende, muss ich auf jeder Seite die aufgerufen wird, session_start() aufrufen, da er sonst die SESSION-Variablen nicht findet, gehört das so?, oder ist da ein Fehler?

Der Aufruf von session_register() ruft implizit session_start() auf, sofern das vorher noch nicht getan wurde. Sowas ist aber ganz schlechter Stil!

 - Sven Rautenberg
--
"Love your nation - respect the others."

nach obennach unten

Zugriffskontrolle mittels SESSION

Die folgende Nachricht zum Thema stammt von: Franky, 31. 07. 2007, 15:09

Hi,

würde mich auch mal interessieren was es bei Sessions zu beachten hat in Sachen Sicherheit. Welche Sicherheitslücken gibt es da und wie kann man sie möglichst schließen?

bye
franky

nach obennach unten

Zugriffskontrolle mittels SESSION

Die folgende Nachricht zum Thema stammt von: Sven Rautenberg, 31. 07. 2007, 14:51

Moin!

»» Nun habe ich aber gelesen, dass session_register und session_is_registered nicht mehr verwenden sollte und was wahrscheinlich noch schlimmer ist, dass ich auf die Daten mittels $_SESSION lese und schreibe.
»»
»» Nun meine Frage, welche andere Möglichkeit gibt es die oben gezeigte Routine zu lösen?

Der Session-Mechanismus funktioniert in PHP so:

Ab dem Befehl session_start() steht dir das Array $_SESSION zur Verfügung und enthält den Zustand, den es beim letzten Speichern (also am Skriptende oder bei Aufruf von session_write_close()) eines Session-Skriptes hatte.

Startzustand beim erstmaligen Aufruf ist ein leeres Array.

Und dort hinein kannst du beliebige Werte speichern, die dir nicht verloren gehen. Beispielsweise: $_SESSION['benutzername'] = "John Doe" wäre die gültige Methode anstelle von session_register.

Oder komplexere Konstrukte mit mehreren Dimensionen: $_SESSION['rechte'] = array('lesen','schreiben','löschen');

Objekte sind grundsätzlich auch erlaubt, erfordern aber, dass du die Regeln zur Serialisierung und Deserialisierung von Objekten beachtest.

Und alle Aktionen, die prüfen sollen, ob irgendein Sessionwert existiert oder einen gewünschten Wert hat, greifen eben mit den ganz normalen Variablenfunktionen (z.B. isset(), empty(), array_key_exists() etc.) auf das Array $_SESSION zu, dessen einzige Sonderbedeutung eben ist, dass es am Skriptende gespeichert und durch den Befehl session_start() wiederhergestellt wird (im Gegensatz zu jeder anderen Variable, die nicht gespeichert wird und deshalb bei der Wiederverwendung leer bleibt).

 - Sven Rautenberg
--
"Love your nation - respect the others."

nach obennach unten

Zugriffskontrolle mittels SESSION

Die folgende Nachricht zum Thema stammt von: Finalplayer_Ryu, 31. 07. 2007, 15:13

Nunja, schön, dass du es so ausführlich aufgeschrieben hast... weiss ich eigentlich, beantwortet meine Frage, aber nur geringfühig bis gar nicht, denn, entschuldigung, dass ich das jetzt sage, solche allgemeinen Floskeln kann man überall lesen.

Trotzdem danke, dass du dir die Mühe gemacht hast

nach oben
Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2007 Teil von Juli

© 1998-2006 Seite Impressum, Software: Classic Forum