[PHP] Steeds nieuwe session in frames?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • mr_wizard
  • Registratie: Februari 2003
  • Laatst online: 29-04 21:17
Waarde Tweakers,

De situatie:
  • Website www.x.nl is een internetservice die andere websitehouders in hun eigenwebsite kunnen implementeren via een (i)Frame
  • Website www.y.nl is zo'n andere website. In dit geval een PHP site zonder frames, maakt dus gebruik van een iFrame om de content van www.x.nl te viewen.
  • Beide websites gebruiken geen cookies
Het probleem
In Internet Explorer wordt de content van de 1e pagina van x.nl netjes geladen en geviewt. In deze pagina worden gelijk de session-variabelen opgeslagen. Als de bezoeker op de knop 'volgende' klikt gaat hij naar de verwerkings-file. In deze file crasht de site omdat hij de benodigde session-variabelen, opgeslagen in de 1e pagina, niet heeft.

De analyse
  • In Firefox werkt alles prima
  • Met privacy settings van IE op low werkt hij ook
  • Buiten het frame werkt hij prima met IE
  • Bij iedere pagina heeft de bezoeker een andere session_id
Het lijkt mij dat IE preventief in geval van een frame steeds een nieuwe sessie aanvraagt bij Apache/PHP als een soort beveiliging?!? Is dit op te lossen, heeft iemand ideen of suggesties??!!? Google i.i.g niet :'(

Thanx!

R&D professional


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

Sessies werken met cookies. Het is voor een iframe niet (zomaar) toegestaan om een cookie te zetten. Omdat er dus bij je volgende request geen sessionId bekent is wordt er een nieuwe gemaakt.

De enige manier om dit op te lossen is door sessie identifier via de url of via een hidden field in je form mee te geven.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 19:59

Kaastosti

Vrolijkheid alom!

Is dat ook heel toevallig de reden dat dit soort id' ook vaak in de URL terug te lezen zijn? Vaak is het dan een hash (bijv. MD5 encrypted), maar er wordt dan wel iets meegestuurd om de sessie van de huidige gebruiker te identificeren.

Ik ben zelf ook met iets dergelijks bezig, maar vraag me nu af hoe ik dan vervolgens de 'oude' sessie weer op kan pakken met de dan bekende identifier. Het is niet als bij een mysql db als 'select alle oude informatie from sessies where id = blaat"...

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


Acties:
  • 0 Henk 'm!

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 22:34
Google eens op P3P, dat is een van de weinige W3C-standaarden die IE wel heeft geïmplementeerd. Het idee is dat je als site een header meestuurt waarin je aangeeft wat je van plan bent met gegevens van de bezoeker. De bezoeker heeft bepaalde instellingen waarin hij vastlegt wat hij wel en niet wil hebben (de security levels van IE) en de browser bepaalt of de site bepaalde acties mag uit uitvoeren. Zonder een P3P header is het acceptatieniveau van IE een stuk lager waardoor je (vooral crossdomain) cookies en dergelijke krijgt die niet werken.

Regeren is vooruitschuiven


Acties:
  • 0 Henk 'm!

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Nieuwe versies van IE accepteren geen cookies van 3rd parties als de pagina geen P3P header heeft. Om het even te testen of dit ook hier het geval is, moet bij x.nl een P3P header gezet worden. Gewoon even spieken bij een ad hoe dat in elkaar zit.

Acties:
  • 0 Henk 'm!

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 21:37

mulder

ik spuug op het trottoir

Je kunt die header in IIS instellen bij je website properties of meegeven in code.

oogjes open, snaveltjes dicht


Acties:
  • 0 Henk 'm!

  • mr_wizard
  • Registratie: Februari 2003
  • Laatst online: 29-04 21:17
P3P ziet er goed uit allemaal, get back to you with the results!!

R&D professional


Acties:
  • 0 Henk 'm!

Verwijderd

Mischien beetje offtopic, maar is P3P niet heel erg dom? Het gaat er alleen om dat een website claimed dat ze niks doen met je gegevens en opeens mogen ze veel meer. Wie controlleerd dan of een website zich daar aan houdt?

Heb ik aan de hand van een P3P header van een website meer rechten bij de rechter als blijkt dat een website toch meer doet met de cookies dan ze zeggen? Geldt de P3P header als een wettelijk contract tussen mij en de website?

Acties:
  • 0 Henk 'm!

Verwijderd

mr_wizard schreef op donderdag 26 mei 2005 @ 13:12:
De situatie:
  • Website www.x.nl ... implementeren via een (i)Frame
  • Website www.y.nl is zo'n andere website. In dit geval een PHP site zonder frames, maakt dus gebruik van een iFrame om de content van www.x.nl te viewen.
Het probleem
In Internet Explorer wordt de content van de 1e pagina van x.nl netjes geladen en geviewt. In deze pagina worden gelijk de session-variabelen opgeslagen. Als de bezoeker op de knop 'volgende' klikt gaat hij naar de verwerkings-file. In deze file crasht de site omdat hij de benodigde session-variabelen, opgeslagen in de 1e pagina, niet heeft.

De analyse
  • In Firefox werkt alles prima
  • Met privacy settings van IE op low werkt hij ook
  • Buiten het frame werkt hij prima met IE
  • Bij iedere pagina heeft de bezoeker een andere session_id
Het lijkt mij dat IE preventief in geval van een frame steeds een nieuwe sessie aanvraagt bij Apache/PHP als een soort beveiliging?!? Is dit op te lossen, heeft iemand ideen of suggesties??!!?
Volgens mij gaat het idd om een soort beveiliging van IE.
Als je in een (i)frame een pagina laat zien uit een ander domein, dan krijg je problemen met de beveiliging.
Als je alle pagina's op hetzelfde domein zet, dan zou alles goed moeten gaan.

Acties:
  • 0 Henk 'm!

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 22:34
Verwijderd schreef op donderdag 26 mei 2005 @ 19:04:
Mischien beetje offtopic, maar is P3P niet heel erg dom? Het gaat er alleen om dat een website claimed dat ze niks doen met je gegevens en opeens mogen ze veel meer. Wie controlleerd dan of een website zich daar aan houdt?

Heb ik aan de hand van een P3P header van een website meer rechten bij de rechter als blijkt dat een website toch meer doet met de cookies dan ze zeggen? Geldt de P3P header als een wettelijk contract tussen mij en de website?
Heel erg dom vind ik overdreven, als alle browsers het zouden ondersteunen is het namelijk best een fijn systeem. Je geeft eenmalig in de browser aan wat je wel en niet wil toestaan en de browser kan aan de hand daarvan bepalen wat wel en niet mag. De standaard schrijft daarbij voor dat een privacy policy uit een aantal elementen zou moeten bestaan:
1. de header (redelijk noodzakelijk voor cookies e.d.)
2. een machine readable XML bestand waaruit de browser meer info kan halen
3. een voor mensen begrijpelijke pagina waarin wordt uitgelegd wat er met de gegevens gebeurd

Als in elk geval aan 1 en 2 wordt voldaan door de website zul je de houder waarschijnlijk best voor de rechter kunnen slepen wanneer blijkt dat er andere dingen gedaan worden dan in de policy staat. Het is immers een afspraak en die zijn rechtsgeldig.
Zoals het nu wordt toegepast is het echter best wel een slechte standaard, immers alleen IE6 ondersteunt hem. Dat betekent dat de gemiddelde developer onterecht denkt dat het een bug is van IE en de CP-header als work-around beschouwt. Die headers worden dus overal en nergens vandaan gekopieerd "omdat het dan in elk geval werkt" zonder dat er verder over wordt nagedacht. Imho een gemiste kans die men de Mozilla/Opera/Safari/Konquror/(etc)-developers best mag aanrekenen, hoe goed ze hun best ook doen qua andere standaarden...

Regeren is vooruitschuiven


Acties:
  • 0 Henk 'm!

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
T-MOB schreef op vrijdag 27 mei 2005 @ 00:50:
Als in elk geval aan 1 en 2 wordt voldaan door de website zul je de houder waarschijnlijk best voor de rechter kunnen slepen wanneer blijkt dat er andere dingen gedaan worden dan in de policy staat. Het is immers een afspraak en die zijn rechtsgeldig.
Nou dat is wel een beetje een stuk waar niet veel over bekend is hoor (behalve als er al een raamovereenkomst is). Zo kom je namelijk met allerlei vraagstukken te zitten als 'Kan een computer zijn wil verklaren', iets wat immers juridisch nodig is voor een overeenkomst. Dat het vervolgens nog standaard gedrag is van een browser wat veel mensen niet weten, maakt het nog moeilijker om te zeggen dat de 'wil' van de gebruiker echt betuigd is.

Je kunt dan beter naar de WBP komen. Ze verzamelen persoonsgegevens (cookies zijn dat ook) met een bepaalde verwerking in gedachten en dit moet ook bekend zijn. Als vervolgens een verwerking niet vereenigbaar is met de verwerking waarvoor ze verzameld zijn, dan zijn hier weer stricte voorwaardes aan gebonden.
Echter als je dus gezeur krijgt met bijv een Amerikaanse site, dan krijg je weer problemen met welke wetgeving geldt nou. Gezeur altijd dat recht en informatica :(

Acties:
  • 0 Henk 'm!

  • mr_wizard
  • Registratie: Februari 2003
  • Laatst online: 29-04 21:17
We hebben P3P ingezet op onze systemen en alles werkt nu. Bedankt voor de tips iig! Verder zijn er voor de zekerheid de procedures geschreven voor eventuele lekken van PII's (Personally-Identifiable Information), altijd handig om te hebben voordat het je een keer overkomt.

Over die standaard: het schijnt dat IE6 je site alsnog blockt op het moment dat je om persoonsgegevens gaat vragen terwijl je in je P3P header aangeeft dat je dat niet zult doen. De vraag is: hoe herkennen ze dat? Volgens mij absoluut niet, maar het schijnt dat ze in dat geval form-fields als name='firstname' wel kunnen herkennen.

iig, nog niet breed geaccepteerd en gebruiken wij de headers alleen maar om de site te laten werken, de (XML) pagina met uitleg laten we achterwegen, de procedures zijn altijd handig om een keer over nagedacht te hebben.

R&D professional


Acties:
  • 0 Henk 'm!

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 22:34
Glimi schreef op vrijdag 27 mei 2005 @ 09:06:
[...]
Nou dat is wel een beetje een stuk waar niet veel over bekend is hoor (behalve als er al een raamovereenkomst is). Zo kom je namelijk met allerlei vraagstukken te zitten als 'Kan een computer zijn wil verklaren', iets wat immers juridisch nodig is voor een overeenkomst. Dat het vervolgens nog standaard gedrag is van een browser wat veel mensen niet weten, maakt het nog moeilijker om te zeggen dat de 'wil' van de gebruiker echt betuigd is.
Je moet het eigenlijk andersom zien, de maker van de site geeft een gestandaardiseerde manier aan wat er met je gegevens gebeurd op . Doet hij vervolgens wat anders dan is er sprake van misleiding of iets dergelijks. Daar zitten volgens mij vrij weinig juridische haken en ogen aan.

Regeren is vooruitschuiven


Acties:
  • 0 Henk 'm!

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
T-MOB schreef op vrijdag 27 mei 2005 @ 14:35:
Je moet het eigenlijk andersom zien, de maker van de site geeft een gestandaardiseerde manier aan wat er met je gegevens gebeurd op . Doet hij vervolgens wat anders dan is er sprake van misleiding of iets dergelijks. Daar zitten volgens mij vrij weinig juridische haken en ogen aan.
Hij geeft wel aan, maar er is in dit geval weinig sprake van een wilsverklaring. En dus is er geen overeenkomst en dus ook geen misleiding ( van juridische misleiding is alleen sprake bij een overeenkomst en kan het reden zijn om de overeenkomst te ontbinden )

Acties:
  • 0 Henk 'm!

Verwijderd

Glimi schreef op vrijdag 27 mei 2005 @ 18:11:
[...]

Hij geeft wel aan, maar er is in dit geval weinig sprake van een wilsverklaring. En dus is er geen overeenkomst en dus ook geen misleiding ( van juridische misleiding is alleen sprake bij een overeenkomst en kan het reden zijn om de overeenkomst te ontbinden )
Het idee van P3P is natuurlijk opzich wel goed, maar als in de praktijk vele websites zomaar wat invullen alleen "omdat het dan werkt" dan gaat er met de implementatie toch wat fout.
Pagina: 1