Keinen Tabschutz innerhalb eines Browser?

Xb2.Net von Boris Borzic

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 20188
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 72 Mal
Danksagung erhalten: 29 Mal

Keinen Tabschutz innerhalb eines Browser?

Beitrag von Manfred »

Hi,
ich habe heute eine zeitlang einen fehler gesucht, bis ich dann endlich drauf gekommen bin, wie es aussieht.
Folgendes Szenario:
1) verschiedene Programm
2) die aber alle die gleichen Grundroutinen und Variablennamen inne haben (also nicht übergreifend, sondern für sich alleine, aber den gleichen Code mit den gleichen Varnamen)
wenn je eines der Programm in einem getrennten Tab (z.B. Firefox) genutzt werden, dann sieht es so aus, als wenn das Programm in Tab1 Vars des anderen Programms in Tab2 und umgekehrt überschreibt, die genauso heißen. Kann das sein?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kannste sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 8643
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 33 Mal
Danksagung erhalten: 126 Mal
Kontaktdaten:

Re: Keinen Tabschutz innerhalb eines Browser?

Beitrag von Tom »

Ich nehme an, Du redest von einem Xb2.Net-Client.

Da musst Du tatsächlich aufpassen. Wenn derselbe Browser mit demselben Server mehrere Verbindungen hat, ist das standardmäßig für Xb2.Net der gleiche Client. Ich hatte irgendwann mal rausgefrickelt, wie sich das abfangen lässt, aber da das in der Realität sowieso keiner macht, hatten wir das meiner Erinnerung nach ad acta gelegt. Aber es ist z.B. auch so, dass die eine Session alle anderen mitkillt. Da musst Du wirklich aufpassen, sollte das ein realistisches Szenario sein.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 20188
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 72 Mal
Danksagung erhalten: 29 Mal

Re: Keinen Tabschutz innerhalb eines Browser?

Beitrag von Manfred »

kann das denn sein? Gleiche Sessions, bei unterschiedlichen Webserver EXE?
Ich rede also hier von 2 verschiedenen xb2net Programmen, die auf unterschiedlichen Ports angesprochen werden. Aber auf gleicher IP Adresse.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kannste sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 15824
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 36 Mal
Danksagung erhalten: 26 Mal
Kontaktdaten:

Re: Keinen Tabschutz innerhalb eines Browser?

Beitrag von Martin Altmann »

Liegen die XB2.Net-Server in verschiedenen Verzeichnissen?
Wenn nicht, versuche das mal.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 8643
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 33 Mal
Danksagung erhalten: 126 Mal
Kontaktdaten:

Re: Keinen Tabschutz innerhalb eines Browser?

Beitrag von Tom »

@Martin: Es geht vermutlich um Client-Cargo.
Herzlich,
Tom
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 15824
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 36 Mal
Danksagung erhalten: 26 Mal
Kontaktdaten:

Re: Keinen Tabschutz innerhalb eines Browser?

Beitrag von Martin Altmann »

Moin Tom,
Ich vermute, dass es verschiedene Programme im selben Verzeichnis sind - diese teilen sich vermutlich dieselbe Datei für das Zwischenspeichern der Sessioninfos (SID, Vars).

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 20188
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 72 Mal
Danksagung erhalten: 29 Mal

Re: Keinen Tabschutz innerhalb eines Browser?

Beitrag von Manfred »

das sind verschiedene Programme, aber im selben verzeichnis. Ich hatte das gemacht, damit ich mir die vielen DLL sparen kann, die eh alle gleich sind.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kannste sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 15824
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 36 Mal
Danksagung erhalten: 26 Mal
Kontaktdaten:

Re: Keinen Tabschutz innerhalb eines Browser?

Beitrag von Martin Altmann »

Mit war so - darum meine Nachfrage.
Dann versuche mal, die testweise in verschiedene Verzeichnisse zu packen. Ich weiß aktuell nicht mehr, ob die "Sessiondatei" im Programmverzeichnis oder im TEMP vorgehalten wird. Letzteres würde dann nichts bringen.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 8643
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 33 Mal
Danksagung erhalten: 126 Mal
Kontaktdaten:

Re: Keinen Tabschutz innerhalb eines Browser?

Beitrag von Tom »

Welche Sessiondatei, Martin?
Herzlich,
Tom
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 15824
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 36 Mal
Danksagung erhalten: 26 Mal
Kontaktdaten:

Re: Keinen Tabschutz innerhalb eines Browser?

Beitrag von Martin Altmann »

Auf dem Xb2.NET-Server wird eine Datei erzeugt (im Falle der Nutzung von serverside cookies), in der die Sessioninfos gespeichert wird. Ist eine DBF mit kryptischen Namen (Buchstaben/Zahlen und ohne Endung) und enthält neben der SID auch die Inhalte der Variablen für die jeweilige session. Ich hatte vor etlichen Jahren dazu mal was in einer der Newsgruppen gelesen (Alaska oder Boris, k.A.) und sie mir auch bei mir angeschaut.
War noch zu Zeiten einer 3.x-Version. Ich weiß aus dem Kopf nicht mehr, ob die im Programm- oder Tempverzeichnis erzeugt wurde.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 8643
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 33 Mal
Danksagung erhalten: 126 Mal
Kontaktdaten:

Re: Keinen Tabschutz innerhalb eines Browser?

Beitrag von Tom »

Hallo, Martin.

Das kommt mir eigenartig vor. Xb2.Net benutzt standardmäßig Cookies für das Session-Management ( :SessionCookies := .T., default ), aber doch keine serverseitigen Cookies. Es ist doch der Server. Die Verwaltung der Session hängt am jeweiligen Session-Objekt, und da gibt es für jede Sitzung bzw. jeden Client genau eines. Ich habe noch nirgendwo davon gelesen, dass Xb2.Net als Server die verschiedenen Sessions - von denen es ja eine ganze Menge zur gleichen Zeit geben kann - in irgendwelche Dateien steckt. Das hat er auch nicht nötig, würde ich mal sagen.
Herzlich,
Tom
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 15824
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 36 Mal
Danksagung erhalten: 26 Mal
Kontaktdaten:

Re: Keinen Tabschutz innerhalb eines Browser?

Beitrag von Martin Altmann »

Es gibt client-side cookies und server-side cookies. Für eine der Varianten musst Du Dich entscheiden.
server-side cookies leben bis zum Ende der jeweiligen session. Sie werden in einer Datei akkumuliert und enthalten alle für die sessions relevanten Infos.
client-side cookies werden auf dem Endgerät gespeichert - bis sie gelöscht werden. Dort können beliebige Infos gespeichert werden.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 8643
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 33 Mal
Danksagung erhalten: 126 Mal
Kontaktdaten:

Re: Keinen Tabschutz innerhalb eines Browser?

Beitrag von Tom »

Hallo, Martin.

Ich finde weder im Programmverzeichnis, noch in irgendeinem benutzerbezogenen Temp-Verzeichnis irgendwo eine DBF, die vom Xb2.Net-Server genutzt wird. Ich habe diverse Sessions laufen lassen, Web, SOAP und noch ein paar andere Dienste. Ich wüsste auch nicht, warum der Server eine externe Tabelle nutzen sollte, um ein Session-Management zu bewerkstelligen. Vielleicht findest Du ja noch irgendwo Infos dazu? In den Xb2.Net-Newsgroups jedenfalls war auch nichts.

Manfred sollte vielleicht mal erklären, welche Arten von Daten sich bei ihm gegenseitig beeinflussen. Ob es also um Cargo des Client-Objekts geht oder andere Varianten.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 20188
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 72 Mal
Danksagung erhalten: 29 Mal

Re: Keinen Tabschutz innerhalb eines Browser?

Beitrag von Manfred »

so wie ich das erkenne, sind es Cargo Daten
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kannste sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 15824
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 36 Mal
Danksagung erhalten: 26 Mal
Kontaktdaten:

Re: Keinen Tabschutz innerhalb eines Browser?

Beitrag von Martin Altmann »

Tom,
die Datei hatte einen kryptischen Namen ohne Endung (so wie CG6TZ8J ). Ich suche zu Hause noch mal heute Abend.
Wo sonst sollte der Xb2.NET-Server die Sessioninfos persistent speichern?

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 8643
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 33 Mal
Danksagung erhalten: 126 Mal
Kontaktdaten:

Re: Keinen Tabschutz innerhalb eines Browser?

Beitrag von Tom »

Wo sonst sollte der Xb2.NET-Server die Sessioninfos persistent speichern?
Meine Frage wäre eher: Warum sollte er das tun? Er ist aus eigener Sicht persistent, schließlich läuft er ja die ganze Zeit, und da braucht er für sein Sessionmanagement keine externe Speicherung. Er ist auch kein Browser und er hat keinen Browser. Er verwaltet alleine die Sessions, legt sie an, invalidiert sie, zerstört sie bei Timeouts usw. - verknüpft mit dem dazugehörigen ThreadObjekt, denn jede Session ist eines. Wenn eine Verbindung für eine Session noch einmal angefragt wird, muss er nur in seinem internen Sessionmanagement prüfen, ob sie noch gültig ist. Und wenn er nicht läuft, gibt es keine Sessions, fertig. Und wenn er neu gestartet wird, sind die alten Sessions ungültig. Alles andere könnte er über clientseitige Cookies regeln.
Herzlich,
Tom
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 8643
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 33 Mal
Danksagung erhalten: 126 Mal
Kontaktdaten:

Re: Keinen Tabschutz innerhalb eines Browser?

Beitrag von Tom »

so wie ich das erkenne, sind es Cargo Daten
Also Sachen, die über oClient:SetCargo("MeinVariablenName",<xInhalt>) angelegt und über oClient:GetCargo("MeinVariablenName") abgefragt werden?
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 20188
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 72 Mal
Danksagung erhalten: 29 Mal

Re: Keinen Tabschutz innerhalb eines Browser?

Beitrag von Manfred »

ja
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kannste sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 8643
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 33 Mal
Danksagung erhalten: 126 Mal
Kontaktdaten:

Re: Keinen Tabschutz innerhalb eines Browser?

Beitrag von Tom »

@Martin: Aus der (aktuellen) Xb2.Net-Doku:

xbSession
This class simplifies session management by providing the ability of saving persistent data across multiple HTTP requests. The data managed by a session is stored in memory and will therefore only persist as long as the application is active.


@Manfred: Ich kenne den Effekt mit dem Client-Cargo nur bei demselben Server und darin mehreren Tabs, also letztlich einem Server, einem Browser und darin mehreren Sitzungen, die auf den gleichen Server im Server gehen (beispielsweise allesamt auf einen simplen HTTP-Server, der irgendwelche HTML-Doks liefert). Da habe ich es schon erlebt, dass sich das Client-Cargo seltsam zu vertauschen schien. Ich denke, es hat bei Dir etwas mit der Verwendung von Client-Cookies (!) im Session-Management zu tun. Die Umstellung auf ein Cookie-freies Session-Management sollte helfen. Schau Dir mal den Abschnitt "State Management" in der Xb2.Net-Hilfe dazu an.
Herzlich,
Tom
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2286
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 10 Mal
Danksagung erhalten: 42 Mal

Re: Keinen Tabschutz innerhalb eines Browser?

Beitrag von ramses »

@Manfred
Die Probleme hatten wir 2012 auch. Eine der Vorgaben war dass ein User im selben Browser mehrere gleichzeitige offene Sessions(Tab's) haben darf auch mit der selben Maske ohne gegenseitige Störung. Das war mit der xbsession Klasse nicht wunschgemäss umzusetzen. Es ist dann unsere eigene Sessions Verwaltung entstanden die noch mehrere zusätzliche Punkte und Sicherheitsaspekte abdeckt die weder mit (bei uns meist verbotenen) Cookies oder der xbsession Klasse erfüllt werden konnten.

Du wirst über kurz oder lang nicht drum rum kommen deine eigene Datenbank basierte Session Klasse zu schreiben besonders wenn du zu Performance Steigerung mehrere CPU Cores nutzen willst.

Ach ja, die xbsession Klasse speichert den Zustand der Sessions im File xb2session.bin die Session überstehen also auch einen Neustart, solange das File nicht korrupt ist .....
Valar Morghulis

Gruss Carlo
Antworten