Asp.net

當頁面為 HTTPS 時,URLReferrer 為空

  • January 13, 2012

我們使用 URLReferrer 和在查詢字元串中傳遞的程式碼來製作線上影片,這樣只有我們的付費客戶才能連結到我們的影片播放頁面。該系統執行良好已有一段時間。我知道 URL 引用者可以被欺騙,但是誰會告訴他們的客戶做這樣的事情來訪問影片?這對我們來說效果很好。

然而,今天我被問到一個對它不起作用的人。URLReferrer 為空,其站點為 HTTPS。我在網上做了一些閱讀,我得到的印像是當源頁面是 https 時無法訪問 URL 引薦來源網址。它是否正確 ?如果我製作了我們網站的 https 版本,會解決它嗎?或者我還有其他方法可以解決這個問題嗎?

謝謝

您的線上研究是正確的。未設置 HTTP Referrer 標頭或等效標頭的主要原因是這可能是一個安全問題。推薦人包含“你來自哪裡”,這是私人資訊,不應該暴露給其他人,如果每個人都可以跟踪你去過的地方,那麼擁有一個安全的網站還有什麼用?

所以:如果引薦來源網址是加密的(使用 SSL 或其他方式),您將無法獲得引薦來源網址。


更新:以下是HTTP 規範關於來自安全站點的說明

如果引用頁面是使用安全協議傳輸的,則客戶端不應在(非安全)HTTP 請求中包含Referer 頭欄位。

正如您可能已經猜到的那樣,沒有辦法繞過這個限制。您唯一的選擇是使用不同的驗證模型。一種這樣的方法是為您的使用者提供一個密鑰,並要求他們將其作為請求的參數發送。可以考慮其他幾種方法。

引用自:https://stackoverflow.com/questions/8848774