2025年11月11日 星期二

[研究]GCB,IIS,httpOnlyCookies 設定為 True 受影響 NuGet 套件

[研究]GCB,IIS,httpOnlyCookies 設定為 True 受影響 NuGet 套件

2025-11-11

Windows Server 從Windows Server 2016開始,IIS為10.0版,後續 Windows Server 2019, Windows Server 2022, Windows Server 2025 也都是 10.0版,大版本號碼相同,小版本可能不同,畫面幾乎相同。

政府組態基準(Government Configuration Baseline,簡稱GCB)

TWGCB-04-014_Microsoft IIS 10政府組態基準說明文件v1.1_1141002

https://www.nics.nat.gov.tw/core_business/cybersecurity_defense/GCB/GCB_Documentation/

https://download.nics.nat.gov.tw/api/v4/file-service/UploadFile/attachfilegcb/TWGCB-04-014_Microsoft%20IIS%2010%E6%94%BF%E5%BA%9C%E7%B5%84%E6%85%8B%E5%9F%BA%E6%BA%96%E8%AA%AA%E6%98%8E%E6%96%87%E4%BB%B6v1.1_1141002.pdf

https://download.nics.nat.gov.tw/api/v4/file-service/UploadFile/attachfilegcb/TWGCB-04-014_Microsoft%20IIS%2010%E6%94%BF%E5%BA%9C%E7%B5%84%E6%85%8B%E5%9F%BA%E6%BA%96%E8%AA%AA%E6%98%8E%E6%96%87%E4%BB%B6v1.1_1141002.docx

項次TWGCB-ID類別原則設定名稱說明設定位置設定路徑GCB設定值
19TWGCB-04-014-0019ASP.NET設定建議httpOnlyCookies▪ 這項原則設定決定 Cookie 是否只能經由 HTTP(S)協定來存取,其餘之 JavaScript、Silverlight 或Flash 等前端程式皆無法存取
▪ 設定網站中的 Cookie 屬性為HttpOnly,讓 Cookie 只供瀏覽器與網站伺服器間之網頁溝通,可避免 Cookie 被 JavaScript 等相關前端程式存取,以降低攻擊者利用網站既有的 XSS 漏洞並透過JavaScript 取得 Cookie 資料之機會
站台IIS 管理員\伺服器\站台\網站\管理\設定編輯器\動作\開啟功能\區段\system.web\httpCookies\httpOnlyCookiesTrue





預設值 False 和 GCB 建議值 True 不同。
********************************************************************************
把某 ASP.NET Webform 的方案的 packages.config 內容詢問 ChatGPT 是否受影響。再加上 PowerShell 測試,人工分析。

ChatGPT

類別 套件 是否受 HttpOnlyCookies 影響 原因說明
ASP.NET 登入/驗證 Microsoft.AspNet.Identity.*, Microsoft.Owin.Security.Cookies 可能受影響(但通常正常) OWIN / Identity 的登入 Cookie 會自動設成 HttpOnly,不影響登入流程,但若有自訂前端 JS 讀取登入 Cookie,會失效。
前端操作 Cookie 的 JS 函式庫 js-cookie ⚠️ 受影響(若存取 ASP.NET Cookie) js-cookie 無法讀取被設為 HttpOnly 的 Cookie。若僅操作自訂 Cookie,則無影響。

敝人註:js-cookie 2.2.1 受影響
Web 前端框架 jQuery, bootstrap, vue, Moment.js, popper.js, Modernizr ❌ 無影響 不依賴 Cookie 存取。

敝人註:
Modernizr 2.8.3 不受影響,
Modernizr.New 3.4.0受影響
Web API / WebForm 功能 Microsoft.AspNet.WebApi.*, Microsoft.AspNet.ScriptManager.*, Microsoft.AspNet.Web.Optimization.*, FriendlyUrls ❌ 無影響 使用伺服器端 Session 或 Token,不依賴前端 Cookie 讀取。
紀錄與追蹤 elmah, NLog, Swashbuckle, RestSharp, MailKit, SendGrid ❌ 無影響 全部為伺服器端操作或外部 API,與 Cookie 無關。
Excel / PDF / ZIP / 資料處理類 Aspose.Cells, ClosedXML, ExcelDataReader, FreeDataExports, NPOI, SharpZipLib, ProDotNetZip ❌ 無影響 全為後端作業,不涉及 Cookie。
安全與加密 BouncyCastle, starkbank-ecdsa, System.Security.*, Microsoft.Bcl.Cryptography ❌ 無影響 不使用瀏覽器 Cookie。
前端輔助 html5-shiv, Respond, WebGrease ❌ 無影響 純前端功能,不存取 Cookie。
第三方 DI / 工具 Autofac, Enums.NET, FastMember, LinqKit, ZString, AngleSharp, HtmlSanitizer ❌ 無影響 與 Cookie 無關。

也就是那些套件會因 httpOnlyCookies 設定為 True (GCB建議值) 而功能異常,很難說,ChatGPT 也很難準確判斷。

NuGet 套件升級一次,就要重新檢測一次。

(完)

沒有留言:

張貼留言