[研究]ASP.NET WebForm 網站用 AppScan 掃描發現【加密的階段作業 (SSL) Cookie 中遺漏安全屬性】
2025-10-13
********************************************************************************
同樣是 _fbp (Cookie) 問題,可參考這篇
[研究]ASP.NET WebForm網站用AppScan掃描發現【SameSite 屬性不安全、不適當或遺漏的 Cookie】
https://shaurong.blogspot.com/2025/10/aspnet-webformappscansamesite-cookie.html
********************************************************************************
ASP.NET WebForm 網站用 AppScan 掃描發現【加密的階段作業 (SSL) Cookie 中遺漏安全屬性】,誤判?
加密的階段作業 (SSL) Cookie 中遺漏安全屬性
嚴重性: 中
CVSS 評分: 6.5
實體: _fbp (Cookie)
風險: 有可能竊取在加密階段作業期間傳送的使用者和階段作業資訊 (Cookie)
原因: Web 應用程式會透過 SSL 傳送未受保護的 Cookie
修正: 新增 'Secure' 屬性至所有機密 Cookie
推論: AppScan 發現加密階段作業 (SSL) 使用不含 "secure" 屬性的 Cookie。
原始回應
HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Expires: -1
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Referrer-Policy: no-referrer
Strict-Transport-Security: max-age=31536000
Content-Length: 15123
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-Hant">
<head><title>
********************************************************************************
你提供的訊息主要說明 AppScan 或類似工具檢測到「SameSite 屬性不安全、不適當或遺漏的機密 Cookie」,並提示可能造成 CSRF 風險。根據你貼出的原始 HTTP 回應,我注意到幾點:
1.HTTP Header 沒有 Set-Cookie 範例
- 你貼的回應裡只有一般安全相關 Header(X-Frame-Options、X-XSS-Protection、Strict-Transport-Security 等),沒有任何 Set-Cookie 項。
- → 如果 AppScan 偵測到 _fbp 或其他 cookie,但在你整個專案 source code 搜尋不到這個字串,很可能是 第三方 JavaScript(例如 Facebook Pixel 或 Google Analytics)在瀏覽器端設置的 cookie,而不是你的 ASP.NET WebForm 自己生成的。
2.SameSite 屬性缺失與 CSRF
- SameSite 屬性主要用於控制瀏覽器在跨站請求中是否傳送 cookie:
- SameSite=Lax:大部分安全跨站行為允許,例如 GET 表單提交。
- SameSite=Strict:完全阻止跨站 cookie。
- 如果沒有設置 SameSite,部分瀏覽器可能仍會傳送 cookie,這可能被 CSRF 利用。
- → 這並不表示你的網站直接有漏洞,但第三方 cookie 的缺失會被掃描工具列為「潛在風險」。
3.誤判可能性
- 若你專案中完全沒有設置 _fbp 或其他第三方 cookie 的程式碼,且 HTTP Response 也沒有 Set-Cookie,那麼 AppScan 很可能 把第三方 cookie 的警告當成你的程式問題。
- 這在實務上屬於 誤判,前提是你確定自己沒有生成該 cookie,也沒有敏感資料存放在它上面。
建議處理方式:
- 在 AppScan 報告中註明「檢測到的 cookie 來自第三方服務,非本網站程式生成,屬誤判」。
- 如果想進一步降低 CSRF 風險:
- 確保你自己生成的敏感 cookie(登入憑證、SessionID)有 HttpOnly; Secure; SameSite=Lax/Strict。
- 對重要表單使用 Anti-CSRF Token。
💡 總結:
- 沒有在你的程式碼或 HTTP Header 找到問題 cookie → 可視為 AppScan 誤判。
- 若要安全,可檢查第三方服務的 cookie 設定,但通常不直接影響你的網站核心安全。
********************************************************************************
Web.Config 有設定 SameSite ,以整個專案 Source Code 搜尋不到 _fbp 字串,當作 AppScan 誤判證據可以嗎 ?
ChatGPT
可以,而且你的情況其實更明確支持「誤判」的結論。分析如下:
1️⃣ 判斷依據
1.Web.Config 已設定 SameSite
- 代表你自己網站生成的 cookie(例如 Session、驗證票證)已正確設置 SameSite 屬性。
- 這符合 CSRF 防護最佳實務。
2.整個專案 Source Code 搜尋不到 _fbp
- _fbp cookie 是第三方服務(例如 Facebook Pixel)生成的,不屬於你的程式。
- AppScan 可能誤將第三方 cookie 列為「機密 cookie SameSite 遺漏」,這是常見的 偵測誤判。
3.HTTP Response Header 沒有 Set-Cookie: _fbp
- 進一步證明 _fbp 不是由伺服器端設置的敏感 cookie。
2️⃣ 安全性評估
- 對你自己的 cookie:已設置 SameSite → 沒有 CSRF 風險。
- 第三方 cookie:缺少 SameSite 不影響你的核心網站安全,但掃描工具可能仍報警。
3️⃣ 建議回應 AppScan
可以這樣說:
「掃描報告提到 _fbp Cookie SameSite 屬性遺漏,但本專案 Source Code 及 Web.Config 均未生成此 Cookie。經查 _fbp 為第三方服務生成,非本專案程式產生,且自有 cookie 已正確設定 SameSite 屬性,故此項為掃描誤判。」
✅ 結論
你完全可以以 Source Code 無 _fbp + Web.Config 已設 SameSite 作為證據,證明 AppScan 報告為誤判。
********************************************************************************
(完)

沒有留言:
張貼留言