Linuchs: FF: Permission denied auf lokalem Rechner

Moin,

irgendwie geht mir der Sicherheitswahn auf den Geist.

Ich stelle per HTML Liederbücher zusammen, jede Seite ist eine HTML-Datei und erscheint in einem iframe.

Die Größe des Dokuments, also A4, A5, A6 wird vom Eltern-Element bestimmt und vom iframe-Dokument abgefragt, um CSS nachzuladen:

Liederbuch a5_16_berkach_auf_esch.htm:

...
<iframe src="amanda_nimm_die_hand_da_weg.htm"></iframe>

Javascript im Lied amanda_nimm_die_hand_da_weg.htm

  if( top.location.href.indexOf ("a5") > -1 ) {
    document.writeln( '<link rel=stylesheet  href="../liedtexte/css/basis_a5.css">' );
  } else if( top.location.href.indexOf ("a6") > -1 ) {
    document.writeln( '<link rel=stylesheet  href="../liedtexte/css/basis_a6.css">' );
  }

doch das ergibt neuerdings (seit wann genau weiss ich nicht, ich drucke solche Dokumente nur sporadisch) den Fehler:

SecurityError: Permission denied to get property "href" on cross-origin object

Um drucken zu können, muss ich den ganzen Salat auf meinen Server hochladen, da funktioniert es.

Wie könnte ich auf dem lokalen Rechner drucken?

Gruß. Linuchs

  1. Servus!

    Die Größe des Dokuments, also A4, A5, A6 wird vom Eltern-Element bestimmt und vom iframe-Dokument abgefragt, um CSS nachzuladen:

    doch das ergibt neuerdings (seit wann genau weiss ich nicht, ich drucke solche Dokumente nur sporadisch) den Fehler:

    SecurityError: Permission denied to get property "href" on cross-origin object

    Um drucken zu können, muss ich den ganzen Salat auf meinen Server hochladen, da funktioniert es.

    Wie könnte ich auf dem lokalen Rechner drucken?

    Einen lokalen Server einzurichten. iirc hat Apple sowas standardmäßig und auch bei Linux /Ubuntu ist so was einfach möglich:

    praxistipps.chip.de/ubuntu-lokalen-webserver-einrichten-so-gehts

    Herzliche Grüße

    Matthias Scharwies

    --
    Heute mal keine Signatur
    1. Einen lokalen Server einzurichten.

      Das ist doch ein Tipp für Leute, die einen Maggi-Würfel mit dem Lastwagen ausliefern.

      Kann man da nicht in den Eingeweiden vom FF rumschrauben?

      1. Servus!

        Einen lokalen Server einzurichten.

        Das ist doch ein Tipp für Leute, die einen Maggi-Würfel mit dem Lastwagen ausliefern.

        Kann man da nicht in den Eingeweiden vom FF rumschrauben?

        Natürlich kannst du die Leute von Mozilla nach dem Quellcode fragen und nach Pale Moon und dem IceWeasel Dir einen eigenen FireLinuchs basteln.

        Da ist imho der Tipp mit dem lokalen Server, gerade bei Ubuntu, einfacher.

        Herzliche Grüße

        Matthias Scharwies

        --
        Heute mal keine Signatur
  2. Hallo,

    ob das in deinem Fall hilft, weiß ich nicht. Aber für XMLHttpRequests ohne Server hilft

    about:config öffnen security.fileuri.strict_origin_policy auf false setzen

    Bei Risiken und Nebenwirkungen essen Sie das Handbuch und schlagen den Ratgeber.

    Gruß
    Jürgen

    1. Hallo Jürgen,

      security.fileuri.strict_origin_policy auf false setzen

      Danke, das hat sofort geholfen.

      Sollte ich das nach dem Drucken wieder zurückstellen, hat das böse Konsequenzen beim Web-Surfen?

      Gruß, Linuchs

      1. Hallo

        security.fileuri.strict_origin_policy auf false setzen

        Danke, das hat sofort geholfen.

        Sollte ich das nach dem Drucken wieder zurückstellen, hat das böse Konsequenzen beim Web-Surfen?

        ich weiß es nicht. Ich habe es bei mir auch umgestellt, um meine XMLHttpRequest-Anwendungen auch ohne Server testen zu können, aber so richtig wohl fühle ich mich nicht. Das ist wohl wie bei den Brandschutztüren: wenn die zu sicher sind, werden sie mit Keilen festgeklemmt.

        Gruß
        Jürgen

        1. Das ist wohl wie bei den Brandschutztüren: wenn die zu sicher sind, werden sie mit Keilen festgeklemmt.

          Schöner Vergleich. Bei "Brandschutz" stelle ich mir immer vor, wie die Feuerwehr löschen will, aber die Leute vom Brandschutz den Brand schützen ;-)

          Verständnisfrage: Wieso wird lokal verboten, innerhalb des Verzeichnis-Baums zuzugreifen, auf dem Server aber erlaubt?

          1. Hallo

            Verständnisfrage: Wieso wird lokal verboten, innerhalb des Verzeichnis-Baums zuzugreifen, auf dem Server aber erlaubt?

            Mit der Funktionalität könnte irgendwer lokal auf irgendwas zugreifen. Das ist nichts, was man will. Auf dem Server ist es grundsätzlich erst einmal auch nur dann erlaubt, wenn das JS-Skript auf den Server der aufgerufenen Domain zugreift, ohne weiteres aber nicht auf irgendeinen anderen Webserver.

            Tschö, Auge

            --
            Ein echtes Alchimistenlabor musste voll mit Glasgefäßen sein, die so aussahen, als wären sie beim öffentlichen Schluckaufwettbewerb der Glasbläsergilde entstanden.
            Hohle Köpfe von Terry Pratchett
            1. Da habe ich ein Verständnisproblem.

              Ich lade mir vollkommen fremde *.js Dateien, zum Beispiel um interaktive Landkarten (leaflet) anzuzeigen.

              Tricky auch die Bestimmung der Höhe eines iframe, wenn ein Kalender (B) in eine fremde Webseite (A) eingebunden wird.

              1. iframe-Dokument (B) telefoniert per Ajax die Höhe "nach Hause"

              2. Server (B) erstellt ein *.gif mit dieser Höhe

              3. Parent-Dokument (A) holt sich das *.gif (von B), entnimmt die Höhe und passt den iframe an.

              Leider funzt das nur einmal. Wäre schön, wenn beim Neuladen innerhalb des iframe, z.B. Orte mit verändertem Umkreis, das iframe wieder angepasst werden könnte.

              Aber das Parent-Dokument bekommt wohl nichts davon mit, was im iframe passiert?

              1. Hallo,

                (i)Frames haben schon immer mehr Probleme geschaffen als gelöst.

                Gruß
                Jürgen

          2. Hallo

            du könntest einen User überreden, ein HTML mit Javascript runterzuladen und auf seinem Rechner lokal zu öffnen. Dann kann das Javascript Systemdateien auslesen und den Inhalt als URL-Parameter übertragen. Bei z.B. Bildern greift die SOP nicht.

            Firefox war der letzte Browser, der lokale Zugriffe noch zugelassen hat. Die Anderen hatten das schon länger verboten.

            Gruß
            Jürgen

  3. wurde als Bug gemeldet, leider ohne Datum und ohne Abhilfe.

    1. Hallo

      wurde als Bug gemeldet, leider ohne Datum und ohne Abhilfe.

      Das liegt wohl daran, dass es kein Bug ist.

      Tschö, Auge

      --
      Ein echtes Alchimistenlabor musste voll mit Glasgefäßen sein, die so aussahen, als wären sie beim öffentlichen Schluckaufwettbewerb der Glasbläsergilde entstanden.
      Hohle Köpfe von Terry Pratchett
  4. Lieber Linuchs,

    SecurityError: Permission denied to get property "href" on cross-origin object

    Du bist doch der, der kein HTTPS anbietet. Das kann (muss aber nicht) damit zusammenhängen. Ebenfalls solltest Du darauf achten, dass die Resource, die cross origin benutzt werden soll, einen passenden Header mitliefert. Für Dich bedeutet das, dass diese Resource mittels PHP ausgeliefert werden muss, damit Du eben mit PHP die notwendigen Header mitliefern kannst.

    Liebe Grüße

    Felix Riesterer