Cross Site Scripting, oder nicht?
afra
- javascript
Hallo Leute!
Eckdaten: Es gibt einen Webserver, der über einen iFrame eine entfernte Seite lädt. Diese soll ohne Scrollbars angezeigt werden. (Wäre natürlich lösbar über eine irgendwie angegebene maximale Höhe, führt aber zu einem langen Scrollbar in der einbettenden Seite und der Unwägbarkeit, dass der geladenen Inhalt vielleicht doch mal höher wäre)
Der Kunde behauptet jetzt, dass es möglich wäre "onload" aus dem geladenen Dokument die Höhe des im iframe geladenen Dokumentes an die Seite die den iframe enthält zu übergeben.
Meines Erachtens geht das nicht? Das wäre doch Cross Site Scripting? Er behauptet dies nur steif und fest und ich bin jetzt ganz unsicher ;o)
Ich hasse diese Lösung mit dem iframe und mir wäre ein erlaubtes Scrollen viel lieber. Aber das "sieht ja nach nix aus" (<- nicht mein O-Ton)
Schönen Gruß
Afra
hi,
Der Kunde behauptet jetzt, dass es möglich wäre "onload" aus dem geladenen Dokument die Höhe des im iframe geladenen Dokumentes an die Seite die den iframe enthält zu übergeben.
Meines Erachtens geht das nicht?
Ja, genau. Also Nein, es geht nicht. [1]
Das wäre doch Cross Site Scripting?
Sagen wir so, die Same Origin Policy wäre da davor.
(Cross Site Scripting bezeichnet eher das Einschleusen von Code in fremde Dokumente, der dann dort ausgeführt oder interpretiert wird.)
Er behauptet dies nur steif und fest und ich bin jetzt ganz unsicher ;o)
Die m.W. einzige Situation, in der das ginge (von Bugs jetzt mal abgesehen), wäre ein entsprechend konfigurierter IE. Dort kann man in den Sicherheitseinstellungen für die jeweilige Zone angeben, dass man Scripte "über Domänengrenzen hinweg" (o.s.ä.) ausführen lassen möchte.
Aber dass nicht jeder seiner Kunden einen IE benutzt, und auch von denen die es tun kaum jemand diese riskante Einstellung seiner Seite zuliebe vornehmen wollen wird, sollte dein Kunde einsehen können.
gruß,
wahsaga
Hallo wahsaga!
"über Domänengrenzen hinweg" (o.s.ä.) ausführen lassen möchte.
Davon hatte ich auch dringend abgeraten. Und in weiteren Releases des IE ist es ja auch nicht sicher, ob das überhaupt noch einstellbar ist. Die Seite ist ein Händlerextranet, da wären IE-Lösungen denkbar. Aber dann könnte ich das Ding ja nicht mehr nutzen ;)
Es ist einfach schlimm, wenn man jemanden am Telefon hat, der sagt, das geht und man ist sich sicher, dass es nicht geht, man will ja auch niemanden vergaulen...
Danke für die Auskunft.
Schönen Gruß
Afra
Hallo Afra
Eckdaten: Es gibt einen Webserver, der über einen iFrame eine entfernte Seite lädt.
Der Webserver lädt die Seite?
Oder fügt der Webserver nur die URL in einen iFrame ein?
Wenn dies serverseitig umgesetzt ist und Traffik keine zu große Rolle
spielt, dann könnte der Webserver wirklich diese Seite laden und selbst
ausliefern. Dann würde die Same Origin Policy keine Rolle mehr spielen,
weil aus Sicht des Browsers beide Seiten vom selben Server kommen.
Es wäre dann auch möglich, den Inhalt des Bodys der fremden Seite direkt
und ohne iFrame einzubinden.
Ich hasse diese Lösung mit dem iframe und mir wäre ein erlaubtes Scrollen viel lieber. Aber das "sieht ja nach nix aus" (<- nicht mein O-Ton)
Wenn die einbindende Seite so aufgebaut ist, dass der iFrame die gesamte
Seitenhöhe einnimmt, dann ist der Scrollbalken des iFrames nicht von dem
der gesamten Seite zu unterscheiden.
Auf Wiederlesen
Detlef
Hallo Detlef!
Hallo Afra
Eckdaten: Es gibt einen Webserver, der über einen iFrame eine entfernte Seite lädt.
Der Webserver lädt die Seite?
Oder fügt der Webserver nur die URL in einen iFrame ein?
Letzteres. Ich habe ja auch entfernte Seite geschrieben. Wir haben keine Möglichkeit die recht komplexe Anwendung die dort geladen wird über eigene Server laufen zu lassen. Wir machen dies aber auch schon mit anderen Anwendungen. Mir ist also klar was du meinst. Es greifen auch eingeloggte 3.000-5.000 User regelmäßig darauf zu, das wäre einfach zu viel für unsere jetzt schon 4 Server ;o)
Wenn dies serverseitig umgesetzt ist und Traffik keine zu große Rolle
spielt, dann könnte der Webserver wirklich diese Seite laden und selbst
ausliefern. Dann würde die Same Origin Policy keine Rolle mehr spielen,
weil aus Sicht des Browsers beide Seiten vom selben Server kommen.
Es wäre dann auch möglich, den Inhalt des Bodys der fremden Seite direkt
und ohne iFrame einzubinden.Ich hasse diese Lösung mit dem iframe und mir wäre ein erlaubtes Scrollen viel lieber. Aber das "sieht ja nach nix aus" (<- nicht mein O-Ton)
Wenn die einbindende Seite so aufgebaut ist, dass der iFrame die gesamte
Seitenhöhe einnimmt, dann ist der Scrollbalken des iFrames nicht von dem
der gesamten Seite zu unterscheiden.
Leider auch hier keine wirkliche Hilfe. Der einzubindende Inhalt wird nur in einem Teil (Division mit %-Breite) der Seite angezeigt. Kopfdaten und Seitenbereiche werden von Logo und Navigation der einbindenden Seite belegt. Das führt dazu, dass der iframe nicht 100% der Höhe einnehmen kann.
Schönen Gruß
Afra