首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

HTTP Referer 為空之謎:防火牆、瀏覽器設定與 .NET 取值陷阱全解析

     編輯:關於ASP.NET

什麼是 HTTP Referer

Referer(標準拼寫錯誤保留至今)是 HTTP 標頭欄位,告知伺服器請求來源頁面。ASP.NET 中可透過 Request.UrlReferrer(回傳 Uri 物件)或 Request.Headers["Referer"] 取得。注意:Request.UrlReferrer.ToString() 可能因編碼不一致產生亂碼,建議用 OriginalString 取得原始字串。

Firefox Referer 失蹤實錄

設定 network.http.sendRefererHeader = 2(始終送出)卻仍抓不到值。抓包發現 Firefox 確實送出 Referer 標頭,排除瀏覽器端問題。關閉諾頓防火牆的「Internet 監控」後,Referer 即正常顯示——罪魁禍首是防火牆過濾了此標頭。IE、Safari 同理。

排查清單

  • 確認瀏覽器設定(Firefox network.http.sendRefererHeader)
  • 用抓包工具(Wireshark/Fiddler)驗證封包是否含 Referer
  • 暫停防火牆/安全軟體的 HTTP 標頭過濾功能
  • 伺服器端改用 Request.Headers["Referer"] 並做 null 檢查

Referer 易偽造,防盜鏈請改用 Token 或簽名機制。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved