2013-04-06 12 views
11

Abbiamo un sito in esecuzione su CloudFlare Pro che utilizza il certificato fornito per la cifratura con un clic. Il nostro sito ha SSL "facoltativo" per gli utenti. Poiché si tratta di un forum, al momento eseguiamo uno script proxy che rileva se un'immagine pubblicata non sta utilizzando un protocollo HTTPS e proxy automaticamente l'immagine attraverso uno script in esecuzione sul nostro server per mantenere la sicurezza e il nostro bel blocco verde!Determina se il visitatore è connesso tramite SSL su CloudFlare Pro

Il mio unico problema ora è che questo introduce un carico non necessario sui nostri server quando gli utenti non utilizzano HTTPS, quindi vorremmo essere in grado di rilevare se lo sono o non lo sono. Tuttavia, poiché il server CloudFlare si sta effettivamente connettendo al nostro, non importa cosa su HTTP (perché stiamo usando SSL con un clic su CloudFlare), il nostro script PHP riporta sempre HTTP e mai proxy le immagini anche quando l'utente usa HTTPS. C'è un modo per ottenere CloudFlare per segnalare che l'utente sta usando SSL?

risposta

21

Trovato la mia risposta, inviano un'intestazione X-FORWARDED-PROTO. È https per SSL e http per normale!

+0

Felice di aver risposto prima che fosse chiuso. Incorrere in un problema simile. – reflexiv

+3

Affidarsi a quell'intestazione nelle connessioni CF non sembra una buona idea, secondo le faq CF non lascerà cadere l'intestazione originale inviata nella richiesta, questo potrebbe essere un buco di sicurezza, dovresti invece controllare l'intestazione Cf-Visitor. Questa intestazione contiene un oggetto JSON che indica lo schema – lordscales91

+0

Se tutto ciò che stai facendo è decidere se reindirizzare a https se l'utente finale sta navigando su http non sicuro, non è necessario fidarsi dell'intestazione. Se un utente "malintenzionato" ignora il proto originale come https, tutto ciò che ne trae vantaggio è il ridimensionamento della sicurezza. Se tutto ciò che state facendo è questo, direi che usare X-forwarded-proto è meglio perché è uno standard de facto che funziona con praticamente tutti i proxy, mentre Cf-Visitor è proprietario. Ti ho comunque revocato, dal momento che hai un buon punto sulla fiducia. –

Problemi correlati