php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 24.05.2006, 08:40  
Erfahrener Benutzer
 
Registriert seit: 23.08.2007
Beiträge: 1.510
M3g4Star befindet sich auf einem aufstrebenden Ast
Standard

Ehrlich gesagt durchblick ich dein Vorhaben nicht.

Ich mein einene gesicherten Bereich der mit Sessions und per SSL Verbindung abgesichert ist sollte natürlich prüfen ob die Session aktiv ist.

Wenn keine Session aktiv ist sollte der User darauf hingewiesen werden das seine Session abgelaufen ist und er somit NEU anfangen muss.

Wenn jemand DIREKT in dein gesicherten bereich "eindringen" will dann solltest du das bemerken da die SESSION nicht gesetzt ist.

Weiterhin sollte deine Seite in deinem https-Bereich auf keine http-Seite verweisen da so manch ein Browser dann immer und immer wieder ALARM schlägt !

Vllt solltest du mal dein Vorhaben GENAU schildern. Ein konkretes Beispiel nennen ..
M3g4Star ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 24.05.2006, 11:00  
Gast
 
Beiträge: n/a
Standard

Nun, Du hast die Situation ja schon ganz richtig umrissen. Nur dass Du sie auf den https-Bereich eingeschränkt hast. Ich unterscheide aber die
Bereiche nicht, da auch außerhalb des https eine Session besteht und ablaufen kann und auch da eine Information an den Besucher notwendig
ist, z.B. weil er seinen Warenkorbinhalt verlieren kann.

Zitat:
in deinem https-Bereich auf keine http-Seite verweisen
Guter Hinweis. Ich muss aber irgendwann den Bereich wieder verlassen, z.B. nach einer Bestellung. Diesen Fall, dass genau in disem Augenblick die
Session abläuft, muss man also mit berücksichtigen.

Da der Starng doch recht schleppend verläuft möchte ich nun gerne meine derzeitige Lösung präsentieren. Vielleicht kann man anhand
dieser nicht nur besser sehen, worum es geht, sondern auch Verbesserungsvorschläge bringen.

Jedesmal, wenn eine Session abläuft (Werte von $_SESSION leer sind),
wird der folgende Code ausgeführt:

PHP-Code:
if (@$_REQUEST['insideRef'] or internalReferer($_SERVER['HTTP_REFERER']))
{
    < 
Message anzeigen >

Dabei liefert internalReferer() TRUE, wenn $_SERVER['HTTP_REFERER'] eine der Domänen des Betreibers, die in der Datenbank stehen, enthält
(also www.mydom.de, www.my-dom.de etc.). Und $_REQUEST['insideRef'] ist nur dann gesetzt, wenn man aus dem https-Bereich in den http-Bereich
verlinkt. Durch beide Angaben kann ich erkennen, dass es sich um einen Aufruf innerhalb der Seite handelt und daher die Ablaufnachricht
einzublenden ist. Andernfalls geschieht das nicht.

Was mir daran nicht gefällt: (a) auf den REFERER ist nicht 100% Verlass und (b) ich muss jeden Link von https nach http mit dem Parameter
insideRef ausstatten (bei diesem Übergang ist der REFERER ja nicht vorhanden, gibt es vielleicht einen anderen Wert stattdessen?).

Wisst Ihr bessere Lösungen für das Problem...
  Mit Zitat antworten
Alt 24.05.2006, 12:30  
Erfahrener Benutzer
 
Registriert seit: 23.08.2007
Beiträge: 1.510
M3g4Star befindet sich auf einem aufstrebenden Ast
Standard

// EDIT : Bitte die Beiträge manuell umbrechen //

Zitat:
Zitat von stani
Guter Hinweis. Ich muss aber irgendwann den Bereich wieder verlassen, z.B. nach einer Bestellung.
Diesen Fall, dass genau in disem Augenblick die Session abläuft, muss man also mit berücksichtigen.
Du solltest genau dann wenn du deinen https Bereich verlässt deine Session auch zerstören !
Damit dem Kunden die Sicherheit bleibt das seine Daten nicht von Dritten eingesehen werden können.

Sprich :
Nach erfolgreicher Bestellung
Nach dem der Kunde sich ausgeloggt hat
Wenn der Kunde sich auf deiner Seite bewegt und vltl einfach so wieder in den ungeschützten Bereich kommt.

Hinweis dazu: Vllt. soltlest du, wenn du ausserhalb deines gesicherten Bereichs auch Sessions benutzt,
eine $_SESSION['save']=true; setzen damit du weißt ob der Kunde gerade im gesicherten bereich war.

Weiterhin soltlest du vllt vollständig nur mit $_SESSION['woher'] arbeiten
damit könntest du dir deinen REFERER sparen.
Sprich: Du setzt in jeder Seite diese Variable und weißt somit genau ob er aus einen gesicherten/ungesicherten Bereich kommt
oder wenn diese nicht gesetzt von ausserhalb kommt.

Jedoch solltest du dann auch wiederum beachten das der User einfach durch Browser schließen deine Seite verlassen kann.
Dann jedoch noch für die "Lebzeit" deiner SESSION den Wert 'woher' und 'save' gesetzt hat.

Wenn er dann nach kurzer Zeit doch nochmal auf deine Seite kommt ist er sozusagen noch "eingeloggt" aber das Risiko besteht überall.
Deswegen schrieben die meisten auch dazu "BITTE AUSLOGGEN"

Wenn er jedoch auf deine Startseite (den ungeschützten Bereich) kommt muss diese SESSION (oder zumindest der Teil aus dem geschützten Bereich)
SOFORT zerstört werden.

*hm* Vllt. hilft dir mein kleiner denkanstoss und du überlegst dir das mit dem REFERER !!

Grüße
M3g4Star ist offline   Mit Zitat antworten
Alt 24.05.2006, 15:09  
Gast
 
Beiträge: n/a
Standard

Ok, das war ein interessantrer Beitrag. Regt zum Nachdenken an.

Zitat:
Du solltest genau dann wenn du deinen https Bereich verlässt deine Session auch zerstören !
Damit dem Kunden die Sicherheit bleibt das seine Daten nicht von Dritten eingesehen werden können.
Oder sagen wir es lieber noch genauer: Alle Werte aus der Session, die sicherheitsrelevant sind, sollten zu diesem Zeitpunkt gelöscht werden. Denn die Werte aus dem http-Bereich können und sollten auch darin verbleiben.

Darüber sind wir uns denke ich einig. Schreibst Du ja auch unten. Ich werde das berücksichtigen. Wobei...

Zitat:
Wenn der Kunde sich auf deiner Seite bewegt und vltl einfach so wieder in den ungeschützten Bereich kommt.
Da muss man abwegen: Sicherheit oder Komfort. Wenn ein Kunde bestellt und alle seine Daten bereits eingetragen hat, dann aber noch einmal in den Katalog wechselt und dadurch alle seine Eingaben gelöscht werden... ich denke das wäre eher kontraproduktiv. Aber auch nach einer Bestellung. Stelle Dir vor, er möchte noch einmal bestellen (nachbestellen) und hat sich beim ersten Mal nicht registriert. Hier ist auch abzuwegen: Sicherheit oder Werterhaltung. Das muss jeder Softwarehersteller oder besser Merchant für sich entscheiden. Davon ausgehend, dass die meisten nicht von Cafe aus bestellen und wenn ja, dass viele von Ihnen sich dann ausloggen bzw. den Cookie löschen, würde ich eher die Werte erhalten. Bis auf ganz kritische Stellen (z.B. bei Bankanwendungen oder wenn eine Kreditkarte im Spiel ist).

----------------------

Zitat:
Weiterhin soltlest du vllt vollständig nur mit $_SESSION['woher'] arbeiten
damit könntest du dir deinen REFERER sparen.
Das zeigt mir, dass Du mein Problem nicht ganz verstanden hast. Denn es geht ja gerade um Sessionablauf. Da hilft es eben nicht, Werte in der Session festzuhalten, was ich übrigens auch schon tue. Ich weiss dann nämlich immer noch nicht, ob die Session abgelaufen und daher leer ist oder ob es ein erster Aufruf der Seite ist und daher leer.

Da hilft dann doch nur der Referer oder ein Parm im Link, scheint mir.
  Mit Zitat antworten
Alt 24.05.2006, 15:50  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Zitat:
Zitat von stani
Denke dabei anj einen Shop: Sessionende => Warenkorb geht verloren.
Oder an ein CMS => Die Liste der zuletzt besuchten Seiten innerhalb der Site geht verloren.

In beiden Fällen ist es sinnvoll, den Besucher darüber zu informieren, bevor man eine neue Sitzung startet.
In diesen Fällen hast du allerdings keine zuverlässigen Informationen mehr, woher der Benutzer kommt.

Natürlich kannst du den Referer verwenden, da dieser aber, wie du selbst angemerkt hast, beliebig vom Client verändert werden kann, hilft dir das nicht zwingend weiter.

Letztendlich besteht noch die Möglichkeit, mitzuloggen, von welchen IPs deine Besucher die Seite aufrufen und ob bei diesen eine gültige Session vorhanden war.
So könntest du bei einem Aufruf eines Besuchers, der über keine gültige Session verfügt, prüfen, ob kurze Zeit zuvor ein Besucher mit der gleichen IP auf deiner Seite war und eine gültige Session hatte. In diesem Fall könntest du dem aktuellen Besucher einen entsprechenden Hinweis anzeigen.
Aber auch diese Möglichkeit ist alles andere als zuverlässig. Mehrere Rechner, die über NAT (sei es beim Privatanwender oder in Firmennetzen) im Internet hängen, haben bei einem Besuch deiner Seite die gleiche IP und sind somit nicht zu unterscheiden. Gleiches gilt für Proxies.
xabbuh ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Referer und Umleitung GSJLink PHP Tipps 2008 16 12.05.2008 14:22
Ungültige und gültige Sessions Micha2010 PHP-Fortgeschrittene 8 26.11.2007 10:17
2 Sessions Kein Genie PHP Tipps 2006 8 21.07.2006 15:45
Forum selber machen - Problem mit neuen Beiträgen PHP Tipps 2006 2 01.04.2006 20:52
[Erledigt] probleme mit sessions PHP Tipps 2007 1 17.11.2005 10:43
Referer in HTML-Dateien mitloggen - img src/script? PHP Tipps 2007 6 02.11.2005 22:03
Referer via img-Tag an PHP übertragen PHP Tipps 2005-2 7 04.08.2005 07:19
Sessions! DER_Brain PHP Tipps 2005-2 5 30.06.2005 14:51
Sessions? Wozu die Sessionid? PHP Tipps 2005 2 27.05.2005 13:03
Proble mit Sessions PHP Tipps 2005 7 07.02.2005 17:42
[Erledigt] Umstieg von Xampp auf Einzelkomponenten: Sessions aktivieren PHP-Fortgeschrittene 1 19.01.2005 11:26
.htaccess - require valid-user und trotzdem referer zulassen pixelcut Server, Hosting und Workstations 2 05.01.2005 10:56
[Erledigt] Referer und GD Library PHP-Fortgeschrittene 4 28.11.2004 16:08
[Erledigt] Usermanagement mit Sessions - Sicherheitsprobleme ? PHP Tipps 2004 0 30.06.2004 09:49
Sessions, sessions und nochmal sessions PHP-Fortgeschrittene 0 06.06.2004 00:36

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
referer nicht gesetzt oder ungültig, php anzeigen wann die session abläuft, referer php nicht gesetzt, php gültiger referrer einer seite, php session referrer, pr.php referrer, zurück auf vorherige seite session referrer, zurück $session referer, php session referer, php referer session, wenn session noch aktiv auf seite

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:17 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.