2013-04-06 12 views
11

Wir haben eine Website auf CloudFlare Pro ausgeführt, die ihr bereitgestelltes Zertifikat für die Verschlüsselung mit einem Klick verwendet. Unsere Website hat "optional" SSL für Benutzer. Da es sich um ein Forum handelt, führen wir derzeit ein Proxy-Skript aus, das erkennt, ob ein gepostetes Bild kein HTTPS-Protokoll verwendet, und das Bild automatisch durch ein Skript auf unserem Server weiterleitet, um die Sicherheit und unser schönes grünes Schloss zu gewährleisten!Ermitteln, ob Besucher über SSL auf CloudFlare Pro verbunden sind

Mein einziges Problem ist jetzt, dass dies eine unnötige Belastung unserer Server bedeutet, wenn Benutzer kein HTTPS verwenden, also würden wir gerne feststellen können, ob sie es sind oder nicht. Da der CloudFlare-Server tatsächlich eine Verbindung zu unserem Server herstellt, unabhängig von der HTTP-Adresse (weil wir SSL mit einem Klick auf CloudFlare verwenden), meldet unser PHP-Skript immer HTTP und gibt die Bilder auch dann nicht weiter, wenn der Benutzer HTTPS verwendet. Gibt es eine Möglichkeit, CloudFlare zu melden, dass der Benutzer SSL verwendet?

Antwort

21

Gefunden meine Antwort, senden sie eine Kopfzeile X-FORWARDED-PROTO. Es ist https für SSL und http für normal!

+0

Froh, dass Sie geantwortet haben, bevor es geschlossen wurde. In ein ähnliches Problem geraten. – reflexiv

+3

Vertrauen, dass Header in CF-Verbindungen scheint keine gute Idee, nach den faqs CF wird nicht den ursprünglichen Header in der Anfrage gesendet, dies könnte eine Sicherheitslücke sein, sollten Sie stattdessen die Cf-Besucher-Header überprüfen. Dieser Header enthält ein JSON-Objekt, das das Schema angibt – lordscales91

+0

Wenn Sie nur entscheiden, ob Sie auf https umleiten sollen, wenn der Endbenutzer über unsichere http surft, müssen Sie der Kopfzeile nicht vertrauen. Wenn ein "böswilliger" Benutzer das ursprüngliche Protokoll als https überschreibt, profitiert er nur von einer Herabstufung seiner Sicherheit. Wenn Sie nur das tun, würde ich argumentieren, dass die Verwendung von X-forwarded-proto besser ist, weil es ein De-facto-Standard ist, der mit so ziemlich allen Proxies funktioniert, während Cf-Visitor proprietär ist. Ich habe Sie jedoch aufgewertet, da Sie Vertrauen haben. –