Laden von Google-Schriftart in HTTPS, Inhalt wird blockiert

Lesezeit: 3 Minuten

Vicos Benutzeravatar
vico

Es gibt ein WordPress-Design, das automatisch die ausgewählte Schriftart der Option zieht und sie von Google Font anfordert. Als SSL für einige ausgewählte Seiten benötigt wurde, wurde die Schriftart missing

Anzeigen des Konsolenprotokolls:

[blocked] Die Seite unter ‘https://www.beispiel.com/‘ wurde über HTTPS geladen, es wurden jedoch unsichere Inhalte von ‘ ausgeführthttp://fonts.googleapis.com/css?family=Alegreya+Sans:300.400.500.700.800‘: Dieser Inhalt soll auch über HTTPS geladen werden.

würde in den Code gehen und alle Anfragen in https von Google Font funktionieren lassen? Gibt es hierfür eine Problemumgehung?

habe den Quellcode gefunden … aber scheint dies bereits zu tun … könnte es einen Fehler in der if-Logik geben?

$prefix = "http";
            if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') $prefix = "https";

            if($get_google_font){

            if(!in_array($rule_split[0], $this->used_fonts))
            {
                $this->extra_output .= "\n<!-- google webfont font replacement -->\n";
                $this->extra_output .= '<link id="google_webfont_'.$this->webfont_count.'" rel="stylesheet" type="text/css" href="'.$prefix.'s://fonts.googleapis.com/css?family='.str_replace(' ','+',$rule_split[0]).$font_weight.'" />';
            }

Benutzeravatar von Stefano Sanfilippo
Stefano Sanfilippo

Bearbeiten Sie Ihr Thema und ersetzen Sie jedes Vorkommen von http://fonts.googleapis.com/... mit https://fonts.googleapis.com/... (Pass auf s).

Ressourcen, die ein Sicherheitsrisiko darstellen könnten (z. B. Skripte und Schriftarten), müssen aus einem offensichtlichen Grund über eine sichere Verbindung geladen werden, wenn sie im Kontext einer gesicherten Seite angefordert werden: Sie könnten unterwegs manipuliert worden sein.

  • Ja, das Gegenteil (Laden von Ressourcen über TLS/SSL in einer nicht gesicherten Seite) ist möglich.

    – Stefano Sanfilippo

    2. Juli 2014 um 14:39 Uhr


  • Ok Musste nur bestätigen, dann gehe ich auf den Code ein. danke~

    – Vico

    2. Juli 2014 um 14:40 Uhr

  • Irgendeine Idee zu dem Code, den ich gepostet habe? scheint das bereits zu tun, aber die if-Anweisung scheint sogar auf https falsch zu sein

    – Vico

    2. Juli 2014 um 14:45 Uhr

  • Du hast eine falsche hinterlassen s:// in dem <link ... Linie. Wie auch immer, Sie brauchen das nicht, verwenden Sie es einfach protokollrelative URIs und du bist fertig.

    – Stefano Sanfilippo

    2. Juli 2014 um 15:15 Uhr


  • Drei Jahre später hat sich die Situation geändert. Von protokollrelativen URIs wird heutzutage abgeraten, da sichere Verbindungen einfacher einzurichten und für viele gängige Anwendungen sehr billig, wenn nicht fast kostenlos sind. Wenn Sie über dienen können httpsdann tun Sie es auf jeden Fall.

    – Stefano Sanfilippo

    17. Juni 2017 um 12:23 Uhr


Benutzeravatar von harmv
schaden

Verwenden protokollrelative URIs

Verwenden Sie einfach eine // Präfix. (instead of http[s]://)

  • Auf einer https-Seite wird die sichere Version geladen.
  • Auf einer einfachen http-Seite wird die einfache http-Version geladen.

Bearbeiten Sie Ihr Thema und ersetzen Sie jedes Vorkommen von http://fonts.googleapis.com/... mit //fonts.googleapis.com/...

Lassen Sie den Browser alles erledigen, entfernen Sie einfach “http” aus Ihrer Referenz.

ebenso müssen Sie dies auch für andere Bibliotheken tun, wenn Sie mit ihnen dasselbe Problem haben, z

https://fonts.googleapis.com/css?family=Open+Sans:700,600,800,400

zu

//fonts.googleapis.com/css?family=Open+Sans:700,600,800,400

gleich für

http://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css

zu

//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css

Ich bin auf dieses Problem gestoßen, wenn Sie Google-CDN-Links verwenden und auf die nicht zugegriffen werden kann (z. B. Land wie China). Versuchen Sie, lokale Dateien anstelle von CDNs zu verwenden

1406680cookie-checkLaden von Google-Schriftart in HTTPS, Inhalt wird blockiert

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy