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

Beitrag lesen

Hi there,

Ich versuche es nochmal mit eigenen Worten zu schildern, um zu prüfen, ob ich das Problem jetzt verstanden habe. Der hier hat mir sehr dabei geholfen.

Ja. Ich wollte eigentlich diese Seite posten, hab dann aber versehentlich zweimal die, wie ich meine, eher unbedeutendere zu diesem Thema gepostet, wie ich bemerkt habe. Da ist das jedenfalls noch einmal sehr detailliert angeführt und beschrieben.

Ich war erstmal verwirrt, weil ich dachte, dass deine /index.php (oder wie auch immer) eine Session erzeugt, die aber beim Abruf der /content/dingsbums.js.php nicht mehr da ist. Das darf aber durch SameSite selbst in einem iframe nicht beeinflusst werden, weil das ein first-party Zugriff ist. Oder?

ja, aber so ist es. Ich greif nicht auf eine Session von ausserhalb zu (ich weiß nicht einmal, ob da so etwas existiert; "ausserhalb", das ist irgendeine Wordpress-Seite, mit der ich zum Glück nichts zu tun habe), der first-party-Zugriff innerhalb des Iframes funktioniert nicht. Ich hab damit zum Glück nur mittelbar zu tun, es war ursprünglich nie die Rede davon, daß das in einem Frame laufen soll - gleichwohl hab ich natürlich Interesse daran, daß das einigermaßen funktioniert.

Anders ist es mit dem Laden des iframe. SameSite=Lax überträgt Cookies nur noch in genau zwei Fällen: beim direkten Navigieren zur Seite, und beim Verzweigen zur Seite über ein Form mit method="get". Ein Form zu einer fremden Domain posten, eine fremde Domain iframen, Ajax-Gets und sogar das Laden von Bildern von einer Fremddomain überträgt Lax-Cookies nicht mehr. Und das bedeutet: Wenn da eine gespeicherte Session war, dann ist sie für deine /index.php bereits nicht mehr vorhanden. Und das würde dann erklären, warum sie auch der .js.php fehlt.

Stimmt das so?

Also für mich siehts eher so aus, als dürfte nur die "top"-Seite überhaupt cookies setzen. Eigentlich müßte bereits die PHP-Funktion session_start() ein PHPSESSID-Cookie setzen, das passiert aber definitiv nicht im Iframe. Die EditThisCookie-Erweiterung vom Chromium sagt definitiv "No cookies here!". Logisch wäre ja, daß man innerhalb des Iframes machen kann, was man will, aber so ist es leider nicht. Ich könnte ja einmal probieren, ob ich irgendwelche Cookies setzen kann. Übrigens wird das ziemlich eng gesehen, vom Browser; ich hab intern ein paar Webserver laufen, und da tritt der Effekt schon auf, wenn ein Skript vom Server 10.0.0.xx1 in einem Iframe von Server 10.0.0.xx2 laufen soll.

nach dem, was ich jetzt gelernt habe, ist das kein Chromia-Bug, sondern eine Trödelei im Firefox! Die Spec wurde nämlich geändert, und SameSite=Lax ist der neue Default. Die Chromia setzen das um, Firefox zockelt hinterher.

Ja, so hab ich das auch verstanden.