[研究]ASP.NET WebForm 網站 HCL AppScan 10.18.0 報告【低】【遺漏或不安全的 "X-Content-Type-Options" 標頭】弱點,如何處理?
2025-07-14
遺漏或不安全的 "X-Content-Type-Options" 標頭
嚴重性: 低
CVSS 評分: 3.7
CVSS 向量: AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N/E:X/RL:X/RC:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MPR:X/MUI:X/MS:X/MC:X/MI:X/MA:X
URL: 略
實體:略 (Page)
風險: 有可能說服無經驗而易受騙的使用者提供機密性資訊,如:使用者名稱、密碼、信用卡號碼、社會保險號碼等等
有可能收集 Web 應用程式相關的機密性資訊,如:使用者名稱、密碼、機器名稱及/或機密檔案位置
原因: 不安全的 Web 應用程式設計或配置
修正: 配置伺服器利用 "nosniff" 值使用 "X-Content-Type-Options" 標頭
差異:
推論: AppScan 偵測到遺漏 X-Content-Type-Options 回應標頭或具有不安全的值,這會增加路過式下載攻擊的暴露風險
Sec-Fetch-Mode: no-cors
Sec-Fetch-Dest: script
Referer: https://csc.nics.nat.gov.tw/
Accept-Language: en-US
Content-Length: 0
HTTP/1.1 200 OK
Content-Type: application/javascript
Last-Modified: Fri, 01 Nov 2024 02:14:02 GMT
Accept-Ranges: bytes
ETag: "051efb732cdb1:0"
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Referrer-Policy: no-referrer-when-downgrade
Strict-Transport-Security: max-age=31536000
...
原始
********************************************************************************
ChatGPT 說:
針對 HCL AppScan 10.18.0 所報告的 ASP.NET WebForm 網站弱點:【遺漏或不安全的 "X-Content-Type-Options" 標頭】,以下是詳細說明與解決方法。
🔍 弱點說明
標頭缺失或設定不當:
X-Content-Type-Options 是一個 HTTP Response Header,用來防止瀏覽器 MIME 類型猜測(MIME sniffing),避免如 JavaScript 檔案被當成 HTML 解析導致跨站攻擊(Cross-Site Scripting, XSS)等風險。
正確的設定:
X-Content-Type-Options: nosniff
這個設定會告訴瀏覽器「不要猜測回應的內容型別,強制依據 Content-Type 執行」。
✅ 解決方法(以 IIS + ASP.NET WebForm 為例)
方法一:在 IIS 設定 Web.config
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-Content-Type-Options" value="nosniff" />
</customHeaders>
</httpProtocol>
</system.webServer>
|
📌 這是推薦做法,所有靜態或 ASP.NET 動態頁面都會加入該標頭。
方法二:在 ASP.NET 程式碼中加入(不推薦,除非你不能動 Web.config)
可以在 Global.asax 的 Application_BeginRequest 事件中加上:
protected void Application_BeginRequest(object sender, EventArgs e)
{
HttpContext.Current.Response.Headers["X-Content-Type-Options"] = "nosniff";
}
|
📌 注意:這種做法無法保證靜態檔(如 .js、.css)也有標頭,仍建議用 Web.config 或 IIS GUI 方式。
方法三:透過 IIS 管理工具手動加入(適用於靜態內容)
- 開啟「IIS 管理員」
- 選取網站節點 → 雙擊「HTTP Response Headers」
- 點選右側「新增...」
- 名稱輸入:X-Content-Type-Options
- 值輸入:nosniff
- 確定 → 套用
📌 注意事項
- 標頭值 只能是 nosniff,其他值會被視為不安全。
- 請確認是否 透過 CDN 或反向代理(如 NGINX、Cloudflare),若有可能要在該層也設定此標頭。
- 若已設定但掃描仍報告缺失,請:
- 確認靜態資源(.js、.css)也有送出該標頭
- 用瀏覽器 DevTools(F12)或 curl 檢查 Response Header 是否正確送出
********************************************************************************
局部原始圖
但以上面的圖片,是類似下面的畫面
這是 Imperva WAF (Web Application Firewall,Web 應用程式防火牆) 認為 AppScan 想存取的網頁有安全疑慮,攔截下來了,這是WAF提供的畫面,不是原來受測系統網站提供的,是 AppScan 誤判了。
(完)



沒有留言:
張貼留言