Javascript Ausgabe aus externer Datei: Laden von gemischten aktiven Inhalten blockiert

  • Hallo Community,

    ich versuche derzeit folgenden in einem Template zu nutzen:

    In der Konsole steht:

    Quote

    Laden von gemischten aktiven Inhalten "http://www.4homepages.de/version/version.php" wurde blockiert.
    Error: Promised response from onMessage listener went out of scope

    Was kann ich da machen?

  • Danke, dass bringt nunmehr diesen Fehler:

    Quote


    Quellübergreifende (Cross-Origin) Anfrage blockiert: Die Gleiche-Quelle-Regel verbietet das Lesen der externen Ressource auf https://www.4homepages.de/version/version.php. (Grund: CORS-Kopfzeile 'Access-Control-Allow-Origin' fehlt). Statuscode: 200.

    Das scheint wohl irgendein Schutz-Mechanismus zu sein ? Von Woltlab oder dem Browser direkt?
    Ein Umgehen scheint nicht möglich, jedenfalls so, dass man natürlich keine Sicherheitslücken produziert?

    Ich binde das direkt in ein Template ein, von einem Plugin-Bau habe ich keine Ahnung.

  • Hallo,

    Von Woltlab oder dem Browser direkt?

    vom Browser direkt, damit man nicht fremde Webseiten auslesen kann (beispielsweise Gmail oder einen anderen Webmailer).

    In diesem Fall ist das ganze offenbar so gedacht, dass die Datei in einem <script>-Tag als Quelle eingebunden wird und dann zwei (globale) Variablen setzt. Über einen AJAX-Request funktioniert das nicht.

    Ich weise darauf hin, dass ein derartiges Skript dann mit vollen Rechten der Seite läuft und potentiell in der Lage ist, sensible Daten zu stehlen oder Aktionen im Namen des Nutzers auszuführen. Ansonsten natürlich der obligatorische Datenschutzhinweis beim Einbetten externer Resourcen.

  • Hallo,

    ich möchte tatsächlich einer Versionsprüfung vollziehen. Die 4images-Software selbst macht das so:

    PHP
            <script language="JavaScript" type="text/javascript" src="http://www.4homepages.de/version/version.php"></script>
            <script language="JavaScript" type="text/javascript">
            <!--
            if ('<?php echo SCRIPT_VERSION; ?>' != latestversion) {
              document.write(latestversioninfo);
            }
            // -->
            </script>

    Ich möchte auf meiner Seite manuell meine Software-Version angeben und wie im Eingangspost nachprüfen, ob es eine neue Version gibt.
    Öffne ich die Seite stimmt die Version oder eben es wird mir angezeigt, dass eine neue Version verfügbar ist.

    Nur das ich das ganze entsprechend im Template nutzen, was ja aufgrund des Schutzes noch nicht funktioniert.

  • Hallo,

    die simple Lösung wäre, es einfach genau so wie in dem Codebeispiel zu machen. Das ist nicht besonders schön, aber funktioniert, wenn das Ziel ist, dass die Ausgabe „nur für dich“ gedacht ist. Alternativ kannst du das ganze natürlich durch einen Server leiten lassen (ähnlich wie der ImageProxy), aber das erfordert dann weitergehende Programmierkenntnisse.

  • Edited 7 times, last by SoftCreatR (January 23, 2023 at 3:22 PM).

  • Hallo,

    class FourImagesVersionPage extends AbstractPage

    würde ich mittlerweile auf Basis von AbstractAction umsetzen. Mit WoltLab Suite 5.5 kann man dann direkt relativ sauber die Laminas JsonResponse benutzen und ist auch zukunftssicher für die PSR-15-Controller ab WoltLab Suite 6.0.

    $response = HttpFactory::makeClient()->send($request);

    Ansonsten empfiehlt sich immer einen Client mit selbst gewähltem Timeout zu erstellen, insbesondere ohne Caching erspart man sich so potentiell endlose Wartezeiten.

  • würde ich mittlerweile auf Basis von AbstractAction umsetzen. Mit WoltLab Suite 5.5 kann man dann direkt relativ sauber die Laminas JsonResponse benutzen und ist auch zukunftssicher für die PSR-15-Controller ab WoltLab Suite 6.0.

    Hatte ich kurz überlegt, ja :D

    Ansonsten empfiehlt sich immer einen Client mit selbst gewähltem Timeout zu erstellen, insbesondere ohne Caching erspart man sich so potentiell endlose Wartezeiten.

    Stimmt, das hatte ich vergessen.

    Ich passe das mal kurz an ^^

    EDIT:

    Done.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!