afra: Cross Site Scripting, oder nicht?

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

  1. 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

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. 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

  2. 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

    --
    - Wissen ist gut
    - Können ist besser
    - aber das Beste und Interessanteste ist der Weg dahin!
    1. 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