2026年1月13日 星期二

[研究]IIS 10.0 GCB "ASP.NET設定建議",".NET信任層級"

[研究]IIS 10.0 GCB "ASP.NET設定建議",".NET信任層級"

2026-01-13

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設定值
22TWGCB-04-014-0022ASP.NET設定建議.NET信任層級▪這項原則設定決定是否指定套用到應用程式之程式碼存取安全性(Code Access Security, CAS)層級
▪可選擇之信任層級如下:
(1)Full(internal):指定未限制的權限。授予ASP.NET應用程式權限,以存取受制於作業系統安全性之任何資源。支援所有特殊權限操作。
(2)High(web_hightrust.config):指定高程式碼存取安全性層級,ASP.NET應用程式預設無法執行下列任何一個動作:
  • 呼叫Unmanaged程式碼
  • 呼叫處理的元件
  • 寫入事件日誌
  • 存取「訊息佇列」服務佇列
  • 存取ODBC、OleDb或Oracle資料來源
(3)Medium(web_mediumtrust.config):指定中程式碼存取安全性層級,表示除了高信任層級限制外,ASP.NET應用程式預設無法執行下列任何一個動作:
  • 在應用程式目錄外存取檔案
  • 存取登錄
  • 進行網路或網頁服務呼叫
(4)Low(web_lowtrust.config):指定低程式碼存取安全性層級,表示除了中信任層級限制外,ASP.NET應用程式預設無法執行下列任何一個動作:
  • 寫入檔案系統
  • 呼叫Assert方法
(5)Minimal(web_minimaltrust.config):指定最小的程式碼存取安全性層級,表示ASP.NET應用程式只具有執行權限
▪預設信任層級為Full(internal)
站台IIS管理員\伺服器\站台\網站\管理\設定編輯器\動作\開啟功能\區段\system.web\trust\levelMedium (web_mediumtrust.config)、Low (web_lowtrust.config)或Minimal (web_minimaltrust.config)



,ASP.NET設定建議,.NET信任層級,

.NET信任層級 = Code Access Security, CAS = partial trust

[研究]「ASP.NET 部分信任 (Partial Trust)」的 3rd Party 套件/元件支援狀況
此值設定 Medium 會導致 Aspose.Cells, ClosedXML, ClosedXML.Parser, FreeSpire.PDF, NReco.PdfGenerator, WkHtmlToPdf, System.Reflection.Emit 相關套件(FastMember, LinqKit) 、、無法使用。

Can't execute under partial trust - SecurityException: System.Security.Permissions.EnvironmentPermission #1669

Web伺服器上的權限信任
所有Aspose .NET元件都需要設定完全信任權限

CAS被微軟棄用,建議設定Full,否則很多程式庫不能用。

Code Access Security
Because Code Access Security is deprecated, most modern code within the .NET ecosystem is not designed to operate within a partial trust environment. Applications that rely on CAS should not expect modern libraries to behave correctly within these environments, unless the library developer has taken explicit steps to ensure compatibility within the CAS sandbox.
由於程式碼存取安全性 (CAS) 已被棄用,.NET 生態系統中的大多數現代程式碼並非設計用於在部分信任環境中運作。依賴 CAS 的應用程式不應期望現代函式庫在這些環境中正常運行,除非函式庫開發者已採取明確措施確保其與 CAS 沙箱的兼容性。

[研究]GCB,IIS,\system.web\trust\level 變更影響?

[研究]「ASP.NET 部分信任 (Partial Trust)」的支援狀況

微軟對 .NET 4.0 開始宣導使用 Full Trust 。

預設值 Full,GCB 建議值 Medium (web_mediumtrust.config)、Low (web_lowtrust.config)或Minimal (web_minimaltrust.config)。但微軟對 .NET 4.0 開始宣導使用 Full Trust,建議排除。

********************************************************************************
(完)

沒有留言:

張貼留言