[研究]GCB,IIS,httpOnlyCookies 設定為 True 影響?
2025-11-10
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/
| 項次 | TWGCB-ID | 類別 | 原則設定名稱 | 說明 | 設定位置 | 設定路徑 | GCB設定值 |
| 19 | TWGCB-04-014-0019 | ASP.NET設定建議 | httpOnlyCookies | ▪ 這項原則設定決定 Cookie 是否只能經由 HTTP(S)協定來存取,其餘之 JavaScript、Silverlight 或Flash 等前端程式皆無法存取 ▪ 設定網站中的 Cookie 屬性為HttpOnly,讓 Cookie 只供瀏覽器與網站伺服器間之網頁溝通,可避免 Cookie 被 JavaScript 等相關前端程式存取,以降低攻擊者利用網站既有的 XSS 漏洞並透過JavaScript 取得 Cookie 資料之機會 |
站台 | IIS 管理員\伺服器\站台\網站\管理\設定編輯器\動作\開啟功能\區段\system.web\httpCookies\httpOnlyCookies | True |
預設值 False 和 GCB 建議值 True 不同。
********************************************************************************
httpOnlyCookies 設定為 True 影響?
ChatGPT
🔹 一、httpOnlyCookies 的用途
讓網站在產生 Cookie 時,自動加上 HttpOnly 屬性,使 Cookie 無法被 JavaScript 讀取。
例如:
Set-Cookie: ASP.NET_SessionId=abc123; path=/; HttpOnly |
✅ 設為 True(建議值)
代表 所有經由 ASP.NET 產生的 Cookie(如 SessionID、FormsAuthentication Cookie 等)都會加上 HttpOnly 屬性。它不會改變前端 JavaScript(例如 Facebook Pixel)自行建立的 Cookie。
好處:可防止 XSS 攻擊存取 Cookie,例如:
document.cookie // 將無法讀取 ASP.NET 自動加的 Cookie |
可防止惡意腳本竊取使用者登入憑證或 Session ID。
風險或影響:
- 如果你的網站前端 JavaScript 程式碼有自行讀取 Cookie 值的邏輯(例如讀取 document.cookie 去判斷登入狀態、語系等),那些 Cookie 若被自動標示為 HttpOnly,將無法再被讀取。
- 但這影響 只限 ASP.NET 自動發出的 Cookie(例如 ASP.NET_SessionId、FormsAuth 等),你若自行以 JavaScript 建立 Cookie(未經伺服器控制),則仍可自由存取。
簡言之:
除非你網站的 JavaScript 要讀取 ASP.NET SessionID 或 FormsAuthentication Cookie(極少見、不安全),否則設成 True 幾乎沒有副作用。
🔹 二、在 Web.config 手動設定
<configuration>
<system.web>
<httpCookies httpOnlyCookies="true" />
</system.web>
</configuration>
|
注意:若你的專案原本已有 <httpCookies> 區塊,請只修改或新增屬性,不要重複宣告。
🔹 三、驗證設定是否生效
在瀏覽器開發者工具(F12)→「Application」→「Cookies」中檢查伺服器送出的 Cookie 是否帶有 HttpOnly 標籤。
或在伺服器端測試:
Set-Cookie: ASP.NET_SessionId=abc123; path=/; HttpOnly |
若有 HttpOnly,表示設定成功。
🔹 四、總結
| 項目 | 說明 |
|---|---|
| 設定名稱 | system.web/httpCookies/httpOnlyCookies |
| GCB 建議值 | True |
| Web.config 路徑 | <system.web><httpCookies httpOnlyCookies="true" /></system.web> |
| 主要影響 | JavaScript 無法讀取 ASP.NET 自動產生的 Cookie |
| 建議 | 設為 True(預設安全值,無功能性影響) |
(完)




沒有留言:
張貼留言