Warum öffnet Internet-Explorer externe xml-Dateien andere Browser nicht?



  • Hallo, für ein kleines Projekt wollte ich eine Website schreiben, welche mittels Javascript alle Relevanten Daten aus einer externen xml-Datei liest.

    Dass dies nicht funktioniert wurde mir schnell klar. Jedoch war ich etwas über den Internet-Explorer erstaunt.

    Firefox und Opera bringen mir die Benachrichtung, dass aus Sicherheitsgründen der Zugriff auf die Datei auf dem anderen Server unterbunden wurde. Kann ich teilweise auch nachvollziehn was für mein Projekt allerdings schade ist.

    Warum aber kann der Internet-Explorer ohne irgendwelche Probleme zu machen die xml-Datei einlesen?

    Für mich ist das etwas unverständlich, da ja alle anderen Browser den Zugriff verweigern.



  • Jaja, der gute alte Internet Exploiter...

    a) Die IE-Minderheit sollten nicht deine einzigen Kunden sein
    b) Es hat längst nicht jeder aktiviertes JavaScript
    c) Lass ein Server-Script die XML-Datei holen, aber dabei solltest du besonderen Wert auf Sicherheit legen. (Wegen Remote Access Injections usw.)



  • Ja ich weis, dass nicht jeder aktiviertes Javascript hat. Das Problem ist, dass die Website von der aus ich auf die XML-Datei zugreifen wollte nicht mit PHP oder ähnlichem realisierbar ist, da es reiner Webspace ohne derartige Serverseitigen Script/Programmiersprachen ist.

    Aber das ist ja nicht das eigentliche Problem. Mir geht es eher darum, warum der Internet Explorer dies zulässt. Denn sämtliche anderen Browser sagen an der Stelle "Vergiss es - Zugriffsverletzung".

    Wöllte ich nur für den Internet Explorer entwickeln, hätte ich den Test nicht auf allen Browsern gemacht. - Ich selbst nutze den IE ja auch nur wenn ich prüfe ob die Sachen die ich geschrieben hab funktionieren / richtig dargestellt werden. Ansonsten nutze ich ausschließlich Firefox.

    Solange die XML-Datei auf dem gleichen Server liegt ist das ganze ja auch kein Problem, dass kommt erst dazu wenn sie sich auf einem anderen befindet, was in meinem Fall erforderlich ist.



  • Hmm, wie kriegst du den IE überredet das Zeug vom fremden Server zu ziehen?
    IE8 meldet bei mir in der Fehlerkonsole nen "Zugriff verweigert" (sofern ich das nicht lokal von der Platte starte...)

    (nur hiermit getestet:

    <script>
    xmlhttp = new XMLHttpRequest();
    xmlhttp.open("GET", "http://www.google.de",true);
     xmlhttp.onreadystatechange=function() {
      if (xmlhttp.readyState==4) {
       alert(xmlhttp.responseText)
      }
     }
     xmlhttp.send(null)
    
    </script>
    

    )



  • Hallo,

    na wenn der Server das zulässt?! Wieso denn nich?! AJAX nutzt doch genau dieses Prinzip. Wobei ich allerdings nicht weiß wie es sich verhält wenn Besitzer der Seite und Beistzer der XML verschieden sind?

    Vermutlich lässt die Sicherheitsrichtlinie des Servers das anzeigen / verarbeiten dieser XML zu, aber FX und Opera blocken von Haus aus den Zugriff?

    Was passiert denn wenn du direkt auf die XML-Datei zugreifst (Adressleiste). Im Reiter Sicherheit der Browsereinstellungen des FX kann man festlegen wann welche Warnung kommen soll, vielleicht steht da was relevantes dabei?!

    LG, Micha



  • geeky, ich weis nicht ob du etwas anders machst als ich aber mit eben deinem geposteten Code, erhalte ich im Alertfenster das angefragte und ja dies im IE8.

    Das anzeigen der entsprechenden xml-Datei funktioniert ohne Probleme wenn sie direkt aufgerufen wird. Nur die Anfrage mit Beispielsweise dem Code von geeky funktioniert nicht bzw. nur im IE.

    Wird wohl doch an irgendwelchen internen Sicherheitsrichtlinien im Browser liegen.



  • Sicherheit steht bei mir auf der Standardeinstellung ("mittelhoch").
    Unter "Verschiedenes" gibts da: "Auf Datenquellen über Domaingrenzen hinweg zugreifen", welches beim "mittelhoch"-Profil auf "Deaktiviert" steht.
    Zusätzlich ist da noch ein "XSS-Filter" auf aktiv...

    Interessant ist das der Firefox keine Exception wirft und einfach so tut als hätte es ne leere Seite gelesen, während der IE8 ne Exception wirft und das Skript dann auch nicht weiter ausführt.



  • Bei mir steht es aber ebenfalls auf "mittelhoch" und die Einstellungen sind ebenfalls genauso. Hab eben mal auf hoch gestellt & erhalte die Ergebnisse noch immer im Internet-Explorer.

    Das mit der Exception beim Firefox. Sagen wir so, mal krieg ich sie mal nicht. - Also ganz außen vor lässt er mich auch nicht.



  • Hast du mal überprüft ob du überhaupt in der Zone bist, für die "mittelhoch" eingestellt ist? Ruft man Seiten lokal oder von nem Server im LAN auf, landet man meist nicht in der "Internet"-Zone und die Seite darf mehr?



  • Ja, hatte es auf meinem Webspace ums zu prüfen. Klar ist das Intranet nicht die Internetzone. 😃

    Einigen wir uns so, es funktioniert aus Sicherheitsgründen nicht und somit wirds gelassen bzw. mit einem Serverseitigen Script gemacht.



  • IE6 <-> IE7 <-> IE8?

    MfG SideWinder


Anmelden zum Antworten