Clemens: Zugriff verweigert

Hallo geschätztes Forum.

Ich hoffe jemand hat eine Lösung für folgendes Problem:

Ich habe in einem Dokument zwei Frames. Die URL des ersten Frames verweist auf eine lokale Seite. Im wesentlichen enthält dieser Frame eine Funktion, die den gesammten Text- sowie HTML-Inhalt des zweiten Frames ausliest und dann lokal speichert.
Funktioniert so:

<SCRIPT LANGUAGE="JScript">
function speichern()
{
var text = parent.frames[1].document.all.tags("html")[0].outerHTML;

var fso = new ActiveXObject("Scripting.FileSystemObject");
var a = fso.CreateTextFile("c:\testdatei.txt", true);
a.Write(text);
a.Close();
}

Im zweiten Frame ist eine beliebige URL des WWW.

Leider wird mir der Zugriff auf den frame[1] verweigert. Ich habe schon versucht, unmittelbar vor dem Auslesen die URL des frames[1] auf eine lokale zu ändern und noch bevor sich der Inhalt des Frames ändert, diesen auszulesen. Zugriff dennoch verweigert!

Jetzt weiß ich alleine nicht mehr weiter. Zertifikat, Sicherheitseinstellungen...?

Ich hoffe, mir kann jemand helfen.

Auf jeden Fall einen schönen Gruß aus Wien.

Clemens

  1. Hi,

    Ich habe in einem Dokument zwei Frames. Die URL des ersten Frames verweist auf eine lokale Seite. [...]

    Du kannst in JavaScript nur auf Frames zugreifen, die vom selben Host stammen. Schon bei einem Unterschied in der Subdomain wird der Zugriff verweigert.

    Möglich, daß es eine Lösung mit privilegierten Scripts gibt, damit kenne ich mich aber nicht aus. Frage im Zweifelsfall mal in news:de.comp.lang.javascript nach, dort wird Dir Georg Maaß (oder jemand anders) sicherlich helfen können.

    Cheatah

    1. für Netscape-Browser:

      Den Benutzer für mehr Rechte fragen:

      if (document.layers)   // Netscape-Browser?
            netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserAccess');
         else
            alert("Diese Funktion ist nur im Netscape Browser moeglich, da Javascript keine Zugriffsrechte auf Formulare anderer Domains hat!");

      Ab diesem Befehl ist innerhalb einer Funktion und den aufgerufenen Funktionen ALLES möglich...

    2. Hallo Forum, Hallo Cheatah,

      Du kannst in JavaScript nur auf Frames zugreifen, die vom selben Host stammen. Schon bei einem Unterschied in der Subdomain wird der Zugriff verweigert.

      weiss ja nicht, ob diese bemerkung roland geholfen hat, unserem projekt hat sie jedenfalls die lösung eines problems beschert, dass seit zwei monaten immer wieder mit dem MSIE auftaucht.
      Auch bei uns wird der zugriff auf frames verweigert, ein grund war nicht ersichtlich.
      Interessant ist nun, daß die Seiten nicht von zwei physikalisch getrennten Servern kommen, aber von einem server, den man auch über einen alias ansprechen kann. Beide domainnamen haben wir im code verwendet.
      Auch hier streikt der MSIE!!! Nachdem wir alle domainvorkommen im code angeglichen haben funzt es nun.

      Juchhee und ein hoch auf das forum und natürlich den "unfreiwilligen" Helfer.

      erleichterte gruesse
      fjh

  2. Hallo,

    meine vordere Bemerkung ist etwas kurz ausgefallen...

    Mittels:
    netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserAccess');

    kann man nur lokal gestartete Javascripte mit mehr Rechten ausstatten...
    Für alle anderen brauchts Certification...

    siehe dazu:
    http://developer.netscape.com/docs/manuals/communicator/jssec/index.htm
    The JavaScript Security Model in Communicator 4.x

    Dies geht mit Netscape, aber nicht mit Explorer. Meines Wissens unterstützt
    der Explorer nur Certification für JAVA. Siehe dazu:

    http://www.abim.net/jsw/index.htm
    Der kleine JAVA Sicherheitsworkshop

    Roland Scherrer