Django: Überprüfen Sie, ob die Verbindung von der Vorlage sicher ist.

8

Ich möchte überprüfen, ob meine Site unter HTTPS innerhalb meiner Vorlage ausgeführt wird, so dass ich S zu den HTTPs meiner externen Javascript-Bibliotheken (nämlich jQuery) bedingt hinzufügen kann. Wie kann ich das tun?

    
mpen 05.12.2010, 19:15
quelle

4 Antworten

7

Ich bin mir nicht sicher, ob Google dies zu der Zeit getan hat, als ich diese Frage gestellt habe, aber sie empfehlen jetzt, dass Sie die Bibliothek über

hinzufügen %Vor%

Der // verwendet das Schema, das Sie gerade verwenden - kein zusätzlicher Code oder zusätzliche Bedingungen.

    
mpen 05.12.2012, 17:14
quelle
13

Wenn Ihre Ressourcen auf dem gleichen Computer gehostet werden, auf dem Sie Anfragen von Ihnen ausführen, muss möglicherweise kein URL-Schema angegeben werden:

%Vor%

Dies wird das gleiche Protokoll (http oder https) und Server als die Anfrage an die Originalseite verwenden.

Bearbeiten 2 (2016):

Wenn Sie auf eine Ressource auf einem anderen Server zugreifen, ist die beste Lösung jetzt (als unten von angegeben) Verwenden Sie das relative URL-Schema:

%Vor%

Dies stellt automatisch eine Verbindung zum Server über http oder https her, abhängig von der Verbindung mit der aktuellen Seite.

Beachten Sie, dass dies einige Probleme verursachen kann Sie müssen alte Browser unterstützen.

Bearbeiten: Wenn Sie die Informationen in Ihrer Vorlage aus irgendeinem Grund wirklich benötigen, können Sie fügen Sie den Anfragekontextprozessor hinzu und verwenden Sie ein RequestContext in Ihren Ansichten. Dadurch wird eine request -Variable in Ihrem Vorlagenkontext platziert, wodurch Sie auf das HttpRequest -Objekt zugreifen können. Sie können dann testen, ob die Anfrage sicher ist, indem Sie den Wert von request.is_secure

prüfen

Zum Beispiel:

%Vor%     
Gabriel Grant 05.12.2010 19:35
quelle
5

Überprüfen Sie die Anfrage in der Ansicht mit is_secure (), und sende es an die Vorlage.

    
JAL 05.12.2010 19:28
quelle
1

Bitte beachten Sie die Verwendung des Template-Tags {% static %} (in Django & gt; = 1.4), das zum Hosten von Mediendateien auf einer separaten Domain oder einem Server konfiguriert werden kann. Dies wird Ihr is_secure Problem beseitigen.

Ссылка

    
Krystian Cybulski 05.12.2012 14:19
quelle

Tags und Links