SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

TYPO3 Kochbuch

TYPO3 Kochbuch zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #21  
Alt 28.12.2007, 16:03:50
defabricator defabricator ist offline
Senior Member
 
Registriert seit: Sep 2007
Ort: Potsdam
Alter: 55
Beiträge: 1.020
AW: Session Re-Loaden

Zitat:
Zitat von rambi
Sollte dieses einfach so möglich sein, ist das System schlampig programmiert! Man läßt damit sogar die versehendliche Doppelvergabe von SessionIDs zu. Ich weiß, die Wahrscheinlichkeit für einen solche Zufall liegt irgendwo bei 1:16^32, aber Zufall bleibt Zufall.
Hä? Wie schließt Du von Sessionübernahme auf doppelte Id Vergabe? Völlig schleierhaft.
Zitat:
Zitat von rambi
Also, will man Sessions übernehmen können, dann muß das Script schlampig geschrieben worden sein.
Nochmal: Deine Skripte kommen immer an die Daten ran oder werden die nur noch magisch verarbeitet? Das Beispiel ist wie gesagt arg verkürzt, aber ob ich nun session_start(); print_r($_SESSION) oder
Code:
da_supermagic_session_starter_function( da_supersecret_password_getter() ); da_supersessiondata_getter();
o.ä. aufrufe, ist doch Jacke wie Hose (für dieses Problem hier).
Zitat:
Zitat von rambi
Sessionübernahmen sollten immer erkannt werden. Zumindest darf ein "Fremder" nicht ohne zusätzliche und hohe Hürden an Sessiondaten nutzen können.
Wer ist denn hier "der Fremde"? Niemand. Nochmal: Es geht um server-seitige Übernahme der Session. Das Skript wird dafür verändert. Wer ändert? Jemand mit der Rolle:Entwickler. Da gibt es keinen "Fremden", nur Skript und Entwickler. Das gilt eingeschränkt sogar, wenn man nicht den Quellcode sondern nur Obfuscatorzeugs oder ein verschlüsseltes Skript hat.
__________________
Wat der Bauer nich kennt, dit frisster nich.

Geändert von defabricator (28.12.2007 um 16:14:23 Uhr)
Mit Zitat antworten
  #22  
Alt 28.12.2007, 16:44:26
rambi
Guest
 
Beiträge: n/a
AW: Session Re-Loaden

Ok, da scheins ja noch richtig an den Grundlagen/Einstellung zu fehlen.... ;-)

Zitat:
Wer ist denn hier "der Fremde"?
Eine Session ist ein Hilfsmittel um annähernd eine persistente Client-Server Verbindung nachzubilden. Und zwar genau und ausschließlich für eine einzige Client-Server Verbindung. Jeder welcher da von der Seite dran rumfumelt ist automatisch "fremd" und damit eine Gefahr. Und wer die Möglichkeit zuläßt ist d***!!

Zitat:
Wie schließt Du von Sessionübernahme auf doppelte Id Vergabe? Völlig schleierhaft.
Doppelte ID Vergabe kann/wird zu einer versehendlichen Sessionübernahme führen!
Was ist daran nicht zu verstehen?
Bin ich dumm, wenn ich das verhindere? Wenn ja, warum?

Zitat:
Das Skript wird dafür verändert.
Sach ich doch!! Bzw. Ist das eine der dümmsten Ideen die mal haben könnte...
Logging einbauen, das darf das einzige Ästlein sein, auf dem man sich bewegen kann.
Baust du jedoch in ein produktiv Script die Möglichkeit der Sessionübernahme ein, dann ist das prinzipiell auch jedem Besucher möglich!


Zitat:
oder werden die nur noch magisch verarbeitet?
Natürlich!!
Wobei magisch natürlich nur solange gilt, bis man geschnallt hat wie es funktioniert!
Mit Zitat antworten
  #23  
Alt 28.12.2007, 16:56:06
defabricator defabricator ist offline
Senior Member
 
Registriert seit: Sep 2007
Ort: Potsdam
Alter: 55
Beiträge: 1.020
AW: Session Re-Loaden

Zitat:
Zitat von rambi Beitrag anzeigen
Ok, da scheins ja noch richtig an den Grundlagen/Einstellung zu fehlen.... ;-)
meinerseits definitiv nein.

Zitat:
Zitat von rambi Beitrag anzeigen
Eine Session ist ein Hilfsmittel um annähernd eine persistente Client-Server Verbindung nachzubilden. Und zwar genau und ausschließlich für eine einzige Client-Server Verbindung. Jeder welcher da von der Seite dran rumfumelt ist automatisch "fremd" und damit eine Gefahr. Und wer die Möglichkeit zuläßt ist d***!!
Nein. Mein Beispiel übernimmt die Session _server-seitig_ über die genau definierte Schnittstelle. Damit sind wie bei jedem anderen Aufruf von session_start() sowohl die Daten geschützt als auch die Eindeutigkeit der session-id gewährleistet (Du weisst, wie php die session_id erzeugt und kontrolliert?). Oder warum sollte dadurch plötzlich der gesamte Sessionmechanismus von PHP durcheinander geraten?

Zitat:
Zitat von rambi Beitrag anzeigen
Doppelte ID Vergabe kann/wird zu einer versehendlichen Sessionübernahme führen!
Ja, würde es. Passiert hier nur einfach nicht.

Zitat:
Zitat von rambi Beitrag anzeigen
Was ist daran nicht zu verstehen?
Bin ich dumm, wenn ich das verhindere? Wenn ja, warum?
Du schreibst nur einfach komplett am Thema vorbei, das ist das Problem. Du vermischt anscheinend den Zugriff und die Möglichkeiten von Clients, fremden shared-server Skripten und dem "eigenen" Skript.

Zitat:
Zitat von rambi Beitrag anzeigen
Sach ich doch!! Bzw. Ist das eine der dümmsten Ideen die mal haben könnte...
Es ist ein einfache Methode, nachträglich an die Daten zu kommen. Den Beweis, dass es dumm ist, bist Du immer noch schuldig. Vielleicht gibt es bessere, komplexere, durchdachtere usw Methoden. Aber Du sprachst von "böse" und "dumm" und "gefährlich". Sehe ich nicht.

Zitat:
Zitat von rambi Beitrag anzeigen
Baust du jedoch in ein produktiv Script die Möglichkeit der Sessionübernahme ein, dann ist das prinzipiell auch jedem Besucher möglich!
Nein, das ist es nicht. Wie gesagt: Du vermischt die Möglichkeiten. Seit wann ist einem Besucher alles möglich, was dem server-seitigen Skript möglich ist?

Zitat:
Zitat von rambi Beitrag anzeigen
Natürlich!!
Wobei magisch natürlich nur solange gilt, bis man geschnallt hat wie es funktioniert!
Laber laber.
__________________
Wat der Bauer nich kennt, dit frisster nich.

Geändert von defabricator (28.12.2007 um 17:05:36 Uhr)
Mit Zitat antworten
  #24  
Alt 28.12.2007, 17:13:11
rambi
Guest
 
Beiträge: n/a
AW: Session Re-Loaden

Zitat:
Papperlapap ..... Laber laber.
Och nöö....
Deine Bockigkeit kann ich in Grenzen verstehen, aber das muß doch nicht sein.

Geändert von rambi (28.12.2007 um 17:13:28 Uhr)
Mit Zitat antworten
  #25  
Alt 28.12.2007, 17:20:09
defabricator defabricator ist offline
Senior Member
 
Registriert seit: Sep 2007
Ort: Potsdam
Alter: 55
Beiträge: 1.020
AW: Session Re-Loaden

Och doch. Langsam nervt es mich halt wirklich.
Und "magisch bis man es versteht" ist doch nun wirklich laber laber, reiner Füllstoff ohne wirklich Inhalt.
__________________
Wat der Bauer nich kennt, dit frisster nich.
Mit Zitat antworten
  #26  
Alt 28.12.2007, 17:37:15
rambi
Guest
 
Beiträge: n/a
AW: Session Re-Loaden

>>Langsam nervt es mich halt wirklich.
Ärger hilft keinem, weder dir noch mir. Also werde ich mich von diesem Thema verabschieden und hoffe, dass dein Vertrauen in die Sicherheit der PHP Sessionverwaltung nicht irgendwann bitter enttäuscht wird.
Mit Zitat antworten
  #27  
Alt 28.12.2007, 17:58:06
defabricator defabricator ist offline
Senior Member
 
Registriert seit: Sep 2007
Ort: Potsdam
Alter: 55
Beiträge: 1.020
AW: Session Re-Loaden

Gut, dann fasse ich die Ergebnisse nocheinmal zusammen.

Serverseitige Sessionübernahme ist kein Problem, auch wenn es bei rechtzeitiger Planung sicher elegantere Möglichkeiten gibt.
Die dabei eingesetzten Methoden haben nichts, aber auch garnichts mit client-seitig ausnutzbaren Lücken zu tun. Serverseitige Sessionübernahme zum Auslesen von Daten ermöglicht es Nutzern in keinster Weise automatisch Sessions zu übernehmen.
Serverseitige Sessionübernahme zum Auslesen von Daten ist nicht gleich benutzerseitige Sessionübernahme. Den selöben Begriff dafür zu verwenden, ist vermutlich ungünstig.
Die Applikation hat Zugriff auf die Daten, so toll sie zwischenzeitlich auch verschlüsselt und codiert sein mögen. Code, der im Kontext der Applikation läuft, hat also zwangsläufig den gleichen Zugriff auf die Daten. Das bedeutet nicht, dass beliebiger Code, insbesondere client-seitiger Code, deshalb Zugriff auf die Daten hat. Das Auslesen der Daten im Context der server-seitigen Applikation bedeutet daher nicht beliebigen Zugriff von irgendwoher auf diese Daten oder gar die Session im Ganzen. Serverseitige Übernahme heißt nicht "beliebiges Handeln mit der Session", insbesondere nicht "beliebieges Handeln von Clientseite her", sondern ermöglicht -genau wie die gesamte Applikation- nur genau das, was durch die Skripte festgelegt wird. Oder in Kurzform: Weder die Session noch die dafür erforderlichen Daten werden dadurch an einen anderen, beliebigen Nutzer transferiert.
__________________
Wat der Bauer nich kennt, dit frisster nich.
Mit Zitat antworten
  #28  
Alt 29.12.2007, 19:46:36
PHP-CODER PHP-CODER ist offline
Anfänger
 
Registriert seit: Dec 2007
Beiträge: 8
AW: Session Re-Loaden

Ich schliesse mich hier absolut der Meinung von defabricator an!

Rambi aus meiner Sicht hast du absulut keine Ahnung über was du eigentlich da redest !
Deine ganze Antworten bauen auf Vorurteile gegenüber PHP sowie total falsche Annahmen.
Zu diesen unvorteilhaften Voraussetzungen gesellt sich noch ein fehlendes Wissen und Können in der PHP Programmierung deinerseits.

Was du in dem Unterforum "PHP für Fortgeschrittenen" verloren hast ist mir echt schleierhaft. Dein Wissen und Können in der PHP programmierung wird es auf jeden fall nicht sein.

Zur Information:
Sessions sind nichts anderes als Serverseitige Cookies die den Vorteil bringen das man wenig bis praktisch gar nichts überprüfen muss was für Werte die Session Variabeln haben.

Grund dafür ist die Tatsache das der Entwickler selbst, also der besitzer des Server welcher die Daten lagert, entscheidet wie die Variabeln in der Session heissen sollen und welche Werte sie schlussendlich annehmen dürfen da alles das auf dem Server abgelegt wird und nicht wie bei einem normallen Cookie auf dem PC des Internetsurfers.

Zur widerholung noch einmal für dich !

Ich als Server Administrator entscheide wie die Variabeln in der aktuellen Session heissen sollen und welche werte sie Annehmen dürfen und sonst kein Anderer.

Aus diesem Grund kann ich diese Daten auch selbst auslesen, löschen oder modifizieren.

Stell dir Vor ich kann ebenfalls den Server vom Netz nehmen oder alles auf dem Server löschen. Wenn das für dich nicht noch mehr BÖSE ist dann weiss ich echt nicht !

Sessions sind Serverseitige Cookies die der entwickler der Seite anlegt um sich kontroll arbeit zu sparen was für Werte der Internet benutzer an die Seite sendet.

Über diese Serverseitige Cookies "Session" hat der entwickler der Seite die Volle Kontrolle.
Er entscheidet wann sie Angelegt werden, was für Namen sie haben, wie lange sie Leben und wann sie gelöscht werden.

Der Internet Benutzer einer Seite hat absolut kein zugriff auf diese Server seitigen
Cookies noch kann er sie beinflussen.
Mit Zitat antworten
  #29  
Alt 29.12.2007, 19:59:12
PHP-CODER PHP-CODER ist offline
Anfänger
 
Registriert seit: Dec 2007
Beiträge: 8
AW: Session Re-Loaden

Zitat:
Zitat von defabricator Beitrag anzeigen
PHP-Code:
foreach(glob(ini_get('session.save_path').'/sess_*') as $sf) {
    
session_id(substr(basename($sf), 5));
    
session_start();
    
print_r($_SESSION);
    
session_write_close();

Das funktioniert meiner Meinung nach nur wenn vorher nicht schon eine Session gestartet wurde.

Mit einer vorher schon gestarteten Session bewirkt der Code nur das die Daten der ersten Session ausgegeben werden.

Bsp. Code:

PHP-Code:
session_start();
$_SESSION['TEST']="TEST ZEICHENKETTE";
print_r($_SESSION);
foreach(
glob(ini_get('session.save_path').'/sess_*') as $sf) {
    
session_id(substr(basename($sf), 5));
    
session_start();
    
print_r($_SESSION);
    
session_write_close();


Geändert von PHP-CODER (29.12.2007 um 20:00:01 Uhr)
Mit Zitat antworten
  #30  
Alt 29.12.2007, 20:18:33
defabricator defabricator ist offline
Senior Member
 
Registriert seit: Sep 2007
Ort: Potsdam
Alter: 55
Beiträge: 1.020
AW: Session Re-Loaden

Ja, ich habe doch geschrieben "arg verkürztes Beispiel".
So wie innerhalb der Schleife müsstest Du auch vor der Schleife die session (die Du für die Authorisierung verwenden kannst) mit session_write_close() beenden und nach der Schleife genau diese Session wieder aufnehmen. Performant ist das jetzt nicht gerade, aber wie häufig im Vergleich zum Regelbetrieb passiert das?
p.s.: Ob man nach dem write_close() noch $_SESSION=array() setzen sollte/muss, kann ich jetzt gerade nicht sagen. Wenn ich raten müsste, dann eher "nicht notwendig". Vielleicht mal ausprobieren.
p.p.s: Mit einem hat Rambi recht: Es gibt sicherlich bessere Methoden, wenn man es rechtzeitig eingeplant hat. Das ist in Deinem Fall nicht (mehr) gegeben.?.
Und ich denke schon, dass er weiss, was Sessions sind. Nur was genau im vorliegenden Fall genau wo gemacht wird, ist wohl etwas durcheinander geraten und hat sich dann wie Scheuklappen vor die (lesenden) Augen gelegt.
__________________
Wat der Bauer nich kennt, dit frisster nich.

Geändert von defabricator (29.12.2007 um 20:23:39 Uhr)
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Session wird zu früh beendet ... sk4ter PHP Grundlagen 2 15.11.2007 18:49:57
session variblen gehen verlohren - immer neue session ID xeta PHP Grundlagen 9 03.08.2006 00:50:33
Session Probleme CounterStar PHP für Fortgeschrittene und Experten 1 09.04.2004 22:55:23
SESSION daten gehen leider nicht verloren! - wennd as fenster geschlossen wird Phil PHP für Fortgeschrittene und Experten 3 31.03.2004 13:08:33
session überprüfen... Xantos PHP für Fortgeschrittene und Experten 4 21.05.2002 10:54:50


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:57:14 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt