Javsscript Same-Origin-Policy Problem

Liebe/-r Experte/-in,

ich habe zu Auswertungszwecken eine Frameset aufgebaut.
frameset.htm (ist klar)
top.htm (oberes Frame mit Javascript-Inhalten)
main.htm (unteres Frame mit externer Webseite)

Von top.htm kann (bzw. möchte ich) per Mausklick Daten aus den Formulardaten des unteren Frames auslesen. Alles kein Problem, sofern im unteren Frame kein externer Inhalt (andere Domain) liegt.

Die Suche hat mich auf Same-Origin-Policy gebracht - aber leider keine Lösung.

Gibt es eine Möglichkeit die Daten vom zweiten Frame trotzdem irgendwie per JS (oder VBS) auszulesen?

bspw.
parent.frames[1].name;
(funktioniert wenn main="./main.htm", aber nicht wenn main="http://www.irgendwas.de")

In meinem Fall geht es um Formulardaten (main=„http…extern“,

Hallo,

wie ist denn die fremde Seite eingebunden? Damit ein hidden-field schon eine value hat, sollte das Formular doch erst abgeschickt worden sein, oder? Kannst Du mal ein konkretes Beispiel schicken? Es gibt aber Methoden, um an die gewünschte Info zu kommen.

Viele Grüße,

Thorsten

Hallo Andreas,

dass das, was Du tun willst, nicht funktioniert, macht Sinn. Allerdings kann man z.B. in php (geht sicher auch in VBS oder Java) mit file_get_contents urls in Strings einlesen und könnte damit zumindest hidden input-Fields auslesen, wenn sie von der Seite vorbelegt werden.

Gruß, Alex

Hallo Andreas,
die Antwort hast du schon gefunden, und wenn’s eine „Lösung“ gäbe, würde das die Phishing-Verbrecher sicher brennend interessieren:
dann bräuchten die nämlich nicht mehr aufwendig die Sites von Banken und Shops nachbauen - es würde ausreichen, User auf eine falsche URL zu locken, dort liegt eine Seite, die im einzig sichtbaren Frame die Original-Site aufruft, und im versteckten Frame munter alle Eingaben des Users abgreift.
Antwort: no way.

Das einzige, was geht, ist die src des Frames zu verändern - weil der ja noch dir „gehört“. Mit etwas jQuery Unterstützung konnte ich auch die Ladezeit eines Frames mit externem Inhalt messen, sprich: das onload-Event nutzen. Siehe
http://www.h3berlin.de/siteping/

Gruß
Thomas

Besten Dank für die Informationen. Das mit dem Phising macht natürlich aus Datenschutzgründen sinn.

Das heißt für mich, dass ich für meine Zwecke an Boardmitteln nicht weiterkomme.

Per PHP, etc. könnte ich zwar den Quellcode auslesen, allerdings bräuchte ich dazu die URL und die kann ich weiß ich zur Laufzeit u.U. nicht. Auf die Frame-URL habe ich ja wiederum keine Zugriff.

[closed]

Hallo Andreas,

das sollte eigentlich aus verständlichen Gründen nicht möglich sein. Denn sonst könnte man ja z.B. eine Bankseite in ein Frameset packen und wenn sich ein Nutzer dort drüber anmeldet, könnte man ja die Logindaten usw. mitlesen.

Es gibt aber neuerdings die Möglichkeit Ajax Anfragen an fremde Domains abzusetzen:

https://developer.mozilla.org/En/HTTP_access_control

Schwierige Materie, aber vielleicht hilft dir das weiter.

Gruß Mathias

Hallo Andreas,

nein … hierfür gibt es mit JS keine Möglichkeit.
Alternative:
die externen Seiten mittels eines PHP- oder Perlscriptes zu holen und in den Frame zu laden.

Gruß
Klaus

Hallo Andreas,

es gibt, meines Wissens nach, keine Lösung für dieses Problem. Damit möchte man verhindern,
dass Daten ausspioniert werden können, die auf einer fremden Seite eingegeben werden.
Beispielsweiße könnte man mit dem Frameset Login-Informationen „mitschreiben“.

Jedoch gibt es für Probleme die wegen der Same-Origin-Policy auftreten meist bessere/andere Lösungswege.

mfg,

mdev

PS: Ich rate von Framesets ab! :wink:

Hi Andreas,

kurze Antwort: nach meinem Kenntnisstand geht es nicht.

MfG
Detlef Garbrecht

Hallo Andreas,
mir ist das noch nicht aufgefallen,
aber wenn ich so nachdenke, dann ich sehr beruhigt,
dass fremde Daten nicht ausgelesen werden können.
Ich weiss keine Lösung dazu.
LG Joachim

Hallo,

in JS dürfte es wegen XSS keine Lösung geben, VBS kann
ich nicht sagen - aber in php kann man Webseiten
auslesen (und natürlich anschließend parsen), solange
url_fopen nicht gesperrt ist; könnte mir gut vorstellen
dass das in VBS auch geht.

Viel Erfolg!

Liebe/-r Experte/-in,

ich habe zu Auswertungszwecken eine Frameset

aufgebaut.

frameset.htm (ist klar)
top.htm (oberes Frame mit Javascript-Inhalten)
main.htm (unteres Frame mit externer Webseite)

Von top.htm kann (bzw. möchte ich) per Mausklick Daten

aus den

Formulardaten des unteren Frames auslesen. Alles kein

Problem,

sofern im unteren Frame kein externer Inhalt (andere

Domain)

liegt.

Die Suche hat mich auf Same-Origin-Policy gebracht -

aber

leider keine Lösung.

Gibt es eine Möglichkeit die Daten vom zweiten Frame

trotzdem

irgendwie per JS (oder VBS) auszulesen?

bspw.
parent.frames[1].name;
(funktioniert wenn main="./main.htm", aber nicht wenn
main="http://www.irgendwas.de")

In meinem Fall geht es um Formulardaten

(main=„http…extern“,

Ja, das auslesen und parsen ist insgesamt kein Problem.
Ich habe das Thema geschlossen, da es aus Sicherheitsgründen hier wohl keine Lösung gibt.

Zum Auslesen des HTML-Codes bräuchte ich die aktuelle URL des Frames in dem die Seite angezeigt wird. Das ist aber nicht möglich. Daher entfallen alle weiteren Möglichkeiten irgendwas weiterverarbeiten zu wollen.

Besten Dank für die vielen Antworten.

mfg
Andreas Osswald

Kann Dir dabei leider auch nicht weiterhelfen.