[研究]ASP.NET WebForm 網站【「查閱者原則」安全標頭值不安全】弱點處理
2025-07-04
環境:Visual Studio 2022 + ASP.NET + WebForm + Web Application + C# + SQL Server 2019 + SQL Server Management Studio (SSMS) 19
********************************************************************************
ASP.NET WebForm 網站用 HCL AppScan 10.8.0 掃描結果如下,甚麼意思? 如何修正 ?
********************************************************************************
AppScan 描述重點:
你的網站「回應標頭 (Response Header)」中的 「查閱者原則」(Referrer-Policy) 設定為:
Referrer-Policy: no-referrer-when-downgrade
這個設定屬於較舊、不完全安全的規範,瀏覽器在:
- 同一個 HTTPS 頁面跳轉到另一個 HTTPS 頁面時,會帶上 Referrer(來源網址資訊)
- 若從 HTTPS 跳轉到 HTTP,則不帶 Referrer
因此,攻擊者若透過設計混合內容或中間人攻擊,有可能間接獲取敏感來源資訊(如帳號、網址結構、內部路徑等)
🎯 解決方案:強化 Referrer-Policy 設定
建議在網站的 HTTP Response Header 或 ASP.NET WebForm 程式碼 加上更嚴格的 Referrer-Policy,常見推薦如下:
| 設定值 | 安全性 | 說明 |
| no-referrer | ★★★★ 高 | 完全不傳送 Referrer,最嚴格但影響功能性 |
| strict-origin-when-cross-origin | ★★★ 中上 | 同源傳完整 Referrer,跨域只帶來源站資訊(不帶路徑) |
| same-origin | ★★ 中 | 只在同一來源下傳送完整 Referrer,跨域不傳送 |
⚠️ 多數企業網站可用 strict-origin-when-cross-origin,兼顧安全與功能。
********************************************************************************
ASP.NET WebForm 解決方案
方法1:Web.Config 全站設置
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Referrer-Policy" value="strict-origin-when-cross-origin" />
</customHeaders>
</httpProtocol>
</system.webServer>
|
方法2:程式碼動態設定(單一頁面)
放在 Page_Load:
protected void Page_Load(object sender, EventArgs e)
{
Response.Headers["Referrer-Policy"] = "strict-origin-when-cross-origin";
}
|
註:不同的弱掃工具,對等級判定可能不一致;ZAP 某些版本或設定下,並不一定會針對 Referrer-Policy 給出專門警示;但許多商業工具(如 HCL AppScan、Burp Suite Pro)可能會專門標示。
註:HCL AppScan 的 "Referrer Policy" Security 頭值不安全" 和 "「查閱者原則」安全標頭值不安全" 是相同的
註:手動檢查「查閱者原則 (Referrer-Policy)」值方法
- 透過 Chrome/Edge 開發者工具:
- F12 → Network → 點選頁面請求
- 查看 Response Headers
- 確認沒有 Referrer-Policy,即為弱點狀況
(完)
相關

沒有留言:
張貼留言