Felix Riesterer: externe js-Datei mit PHP-Elementen in ein ein einem Iframe laufenden Skript einbinden

Beitrag lesen

Lieber klawischnigg,

Theoretisch;). Aber es gibt da mit der Session Probleme, wenn die Anwendung in einem Iframe läuft, der nicht der Server der "Rahmenseite" ist.

lass mich das mal etwas auseinander dröseln.

  1. Du stellst (nur) Vermutungen an, was Du mit dem Wort "theoretisch" formulierst.
  2. Du hast ein PHP-Script (eigentlich eine ganze Anwendung), das mit einer Session arbeitet.
  3. Dein PHP-Script wird auf einer anderen Domain in einen Frame geladen und vermisst dort seine Session.

Nun meine Fragen:

zu 1.) Welche Debug-Ausgaben hast Du in Deinem Script getätigt, um die unterschiedliche Reaktion auf die Session hin zu prüfen? Inwiefern wirkt es sich auf den Request an Dein Script aus, wenn es in einem Frame einer anderen Seite eingebettet ist? Schaust Du auf den Referrer? Wenn ja, wie/wo/warum?

zu 2.) Woher nimmt sich das Script die Werte in der Session? Sind diese an URL-Parameter oder POST-Werte gebunden, die bei der Einbettung in den Frame fehlen?

zu 3.) Die Session wird in aller Regel über Cookies gelöst. Da im Frame Dein Script im Rahmen Deiner üblichen Domain aufgerufen wird, sollte das zugehörige Cookie erreichbar sein. Und selbst wenn nicht, so kann doch wieder ein neues angelegt werden, das an Deine Domain geknüpft gilt. Oder läuft die Einbettung auf anderem Wege (irgendwelche Proxy-Scripte), die Dein Script eben genau nicht "wie sonst üblich" im Rahmen Deiner Domain aufrufen?

Das kann man durch bestimmte Einstellungen in der PHP.ini lösen, (Voraussetzung, beide Server nutzen das https-Protokoll, ohne gehts gar nicht; das trifft auf alle Chrome-basierten Browser zu) - nur - die Schwierigkeiten damit hab ich eh schon im vorigen Posting erwähnt.

Das klingt für mich gerade nach einer Portion Buchstabensuppe. Die Vokabeln kenne ich natürlich alle, aber ihr Zusammenhang wirkt wie völlig verdreht.

In der PHP.ini kannst Du grundsätzliches Scriptverhalten einstellen, ja. Das habt aber rein überhaupt nichts damit zu tun, was Aufrufe innerhalb von Frames betrifft, weil im Frame ein eigenes Dokument liegt, welches sich wie ein übliches Browserfenster sonst auch Dein Script als Resource lädt. Da ist technisch kein Unterschied (es sei denn da tunnelt etwas herum). Inwiefern ein Google-Browser hier spezielle Extrawürste auffährt, um vermeintliche zusätzliche Sicherheit zu erreichen, kann ich nicht abschätzen oder sagen, da ich ausschließlich mit dem Feuerfuchs entwickle. Im Chromium tut's dann so gut wie immer auch.

Liebe Grüße

Felix Riesterer