PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Javascript in iFrame


rotalever
2009-05-29, 15:11:23
Hi
Wie ist das eigentlich wenn ich eine Webseite A mit einem iframe habe und in diesem iframe ist eine zweite Seite B drin, die ein Javascript enthält. Kann das Javascript aus B dann auf A in irgendeiner Weise zugreifen (z.B. Daten auslesen)? Oder besteht da keine Verbindung?

Thorn of Roses
2009-05-29, 16:07:07
Bin mit jetzt nicht mehr ganz sicher, aber ich glaube zu wissen das sich Iframes ganz normal mit ihrem name-attribut ansprechen lassen. Danach musst du halt normal den DOM baum entlanggehen, also iframename.document.wasauchimmerduverändernwillst.machwas().

Evtl. brauchst auch den document verweis im IFrame nicht (bin grad unsicher :)).

Andersrum (also von IFrame raus auf des übergeordnete doc sollte mit parent.document.tuwasduwillst() gehen.

mit vergesslichen Grüßen,

-Thorn-

rotalever
2009-05-29, 17:04:00
Andersrum (also von IFrame raus auf des übergeordnete doc sollte mit parent.document.tuwasduwillst() gehen.

Hmm, das ist schlecht ;), aber danke.

Kann man das irgendwie unterbinden?

edit: Vielleicht dadurch, dass man für die Seite im iFrame eine andere (Sub-)Domain verwendet? Sowas müsste ja durch den Browser geblockt werden: http://www.110mb.com/forum/access-parent-content-from-iframe-t39335.0.html;msg336242#msg336242
Aber vermutlich blocken das dann auch wieder nicht alle browser.

DanMan
2009-05-29, 17:44:08
Hmm, das ist schlecht ;), aber danke.

Kann man das irgendwie unterbinden?

edit: Vielleicht dadurch, dass man für die Seite im iFrame eine andere (Sub-)Domain verwendet? Sowas müsste ja durch den Browser geblockt werden: http://www.110mb.com/forum/access-parent-content-from-iframe-t39335.0.html;msg336242#msg336242
Aber vermutlich blocken das dann auch wieder nicht alle browser.
Glaub nicht, dass man das verhindern kann. Was soll das eigentlich geben, wenns fertig ist?

Thorn of Roses
2009-05-29, 17:50:03
Vielleicht dadurch, dass man für die Seite im iFrame eine andere (Sub-)Domain verwendet? Sowas müsste ja durch den Browser geblockt werden

Denk auch nicht das DOM das interessiert ob du eine andere Subdomain verwendest oder nicht. Letzten Endes wird ja nur die lokal geladene Instanz der Seite angesprochen wobei die subdomain/tld nicht mehr interessiert. Was anderes wärs wenns darum geht cookies zu verarbeiten.

Edit: Hab grad gegoogled: anscheinend ist die verarbeitung unterschiedlicher domains doch reglementiert. einfach mal googlen.

mit trennenden Grüßen,

-Thorn-

rotalever
2009-05-29, 18:44:40
Glaub nicht, dass man das verhindern kann. Was soll das eigentlich geben, wenns fertig ist?
Naja ich möchte auf einer Seite die persönliche Daten des Benutzers enthält ein externes Script einbinden. Dieses Script soll natürlich nicht auf diese Daten zugreifen können. Auch wenn ich davon ausgehe, dass es das sowieso nicht tut, möchte ich mich doch noch zusätzlich absichern und nicht einfach dem Script vertrauen...

gereggter Gast
2009-05-30, 00:27:11
Edit: Hab grad gegoogled: anscheinend ist die verarbeitung unterschiedlicher domains doch reglementiert. einfach mal googlen.

mit trennenden Grüßen,

-Thorn-
Das stimmt. Auf Arbeit hatten wir schon mit diesem Thema zu kämpfen. Aus Sicherheitsgründen sind die Zugriffe reglementiert. Für Firefox und Opera mussten wir deshalb noch einen domain Parameter im Javascript setzen, damit es dann übergreifend funktioniert.
Nur beim nicht ganz so sicherheitsverliebten IE klappte es auch so. Da waren wir anfangs ganz happy, dass beim IE mal was auf Anhieb klappte :), aber rückwirkend betrachtet, ist es natürlich ein Sicherheitsproblem.

Wie man das aber im IE verhindern könnte, wüßte ich jetzt nicht. Vielleicht achtet der 8er mittlerweile drauf.

rotalever
2009-05-30, 12:50:00
Da waren wir anfangs ganz happy, dass beim IE mal was auf Anhieb klappte :), aber rückwirkend betrachtet, ist es natürlich ein Sicherheitsproblem.

Wie man das aber im IE verhindern könnte, wüßte ich jetzt nicht. Vielleicht achtet der 8er mittlerweile drauf.
Naja, dann muss ich wohl doch eine andere Lösung finden. Schließlich soll es für möglichst alle Benutzer sicher sein.