2013-04-06 61 views
11

我們有一個在CloudFlare Pro上運行的站點,該站點使用其提供的證書進行一鍵加密。我們的網站爲用戶提供「可選」SSL。因爲它是一個論壇,我們目前運行一個代理腳本,用於檢測發佈的圖像是否未使用HTTPS協議,並通過運行在我們服務器上的腳本自動代理映像以維護安全性和可愛的綠色鎖定!確定訪問者是否通過CloudFlare Pro上的SSL連接

我現在唯一的問題是,當用戶不使用HTTPS時,這會給我們的服務器帶來不必要的負載,所以我們希望能夠檢測到它們是否是。但是,由於CloudFlare服務器實際上是連接到我們的,無論通過HTTP進行什麼操作(因爲我們在CloudFlare上使用一鍵式SSL),我們的PHP腳本始終報告HTTP,並且即使在用戶使用HTTPS時也不會代理映像。有沒有辦法讓CloudFlare報告用戶正在使用SSL?

回答

21

找到我的答案,他們發送標題X-FORWARDED-PROTO。它的SSL爲https,正常爲http

+0

很高興在您關閉前回答。遇到類似的問題。 – reflexiv 2013-08-08 02:42:52

+3

在CF連接中信任該頭部似乎不是一個好主意,根據常見問題,CF不會丟棄請求中發送的原始頭部,這可能是一個安全漏洞,您應該檢查Cf-Visitor頭部。該頭部包含一個JSON對象,指示方案 – lordscales91 2016-03-26 10:49:00

+0

如果您正在做的是決定是否重定向到https,如果最終用戶瀏覽的是不安全的http,則不需要信任頭部。如果一個「惡意」用戶將原始協議覆蓋爲https,她所有的好處都會降低她的安全性。如果你所做的只是這個,我認爲使用X-forward-proto更好,因爲它是一個事實上的標準,可以與幾乎所有的代理一起使用,而Cf-Visitor是專有的。我雖然贊成你,因爲你對信任有很好的評價。 – 2017-02-04 16:26:16