結論

資訊安全佈告欄 MS10-070 中說明的安全性更新會變更 ASP.NET 中的預設加密機制,在加密之外再額外執行驗證 (簽署)。本文說明可回復為 ASP.NET 舊版加密行為的設定選項。如需更多有關此安全性更新的資訊,請造訪下列網站:

http://www.microsoft.com/taiwan/technet/security/bulletin/ms10-070.mspx

其他相關資訊

ASP.NET 允許使用者透過 MachineKey 區段中的設定,選擇性地加密或驗證資料。安全性更新 MS10-070 中說明的安全性更新會變更 ASP.NET 中的預設加密行為,即使只有要求解密,預設行為也會在解密之外再額外執行驗證。安裝資訊安全佈告欄 MS10-070 中說明的安全性更新後,針對 ASP.NET 設定加密時,系統會執行下列作業:

  • 在資料加密期間,系統會為加密資料產生 HMAC 簽章,並將簽章附加至加密資料。

  • 在資料解密期間,系統會在解密資料前先對 HMAC 簽章進行驗證。

以下是 ASP.NET 應用程式設定 (appSettings) 中,控制除加密之外的簽署行為機碼。

機碼

類型

預設值

支援的 .NET 版本

aspnet:UseLegacyEncryption

Boolean

False

Microsoft .NET Framework 2.0 Service Pack 1Microsoft .NET Framework 2.0 Service Pack 2Microsoft .NET Framework 3.5Microsoft .NET Framework 3.5 Service Pack 1Microsoft .NET Framework 4.0

aspnet:UseLegacyMachineKeyEncryption

Boolean

False

Microsoft .NET Framework 4.0

aspnet:ScriptResourceAllowNonJsFiles

Boolean

False

Microsoft .NET Framework 3.5 Service Pack 1Microsoft .NET Framework 4.0

aspnet:UseLegacyEncryption appSetting 的說明

這個應用程式設定可指定加密模式是否要額外使用 HMAC 機碼執行驗證,即使在 ASP.NET 設定中,machineKey 區段中的驗證區段未設定 HMAC 簽章驗證。

aspnet:UseLegacyEncryption

描述

False (預設值)

這個設定可在 ASP.NET 設定為使用加密時,設定 ASP.NET 額外執行 HMAC 簽章驗證。即使 machineKey 中的驗證未設定為使用 HMAC 機碼簽署,還是會發生這個狀況。

True

這個設定可在 ASP.NET 設定為使用加密但不透過 machineKey 中的驗證使用 HMAC 簽署時,設定 ASP.NET 不執行 HMAC 簽章驗證。注意 這個設定可能會允許惡意用戶端解密、偽造,或以其他方式竄改加密資料。

若要設定這個設定,將下列設定加入您的電腦或應用程式的 web.config 檔案:

<configuration> ... <appSettings> ... <add key="aspnet:UseLegacyEncryption" value="false" /> </appSettings> </configuration> 

aspnet:UseLegacyMachineKeyEncryption appSetting 的說明

這個應用程式設定可指定透過 System.Web.Security.MachineKey 類別的加密是否將額外使用 HMAC 機碼執行驗證,即使提供的 MachineKeyProtection 引數未指定執行驗證。

aspnet:UseLegacyMachineKeyEncryption

描述

False (預設值)

這個設定可在 ASP.NET 設定為使用加密時,設定 ASP.NET 透過 MachineKey 類別,額外執行 HMAC 簽章驗證。即使提供的 MachineKeyProtection 引數未指定執行驗證,這個簽章驗證作業仍會發生。

True

這個設定可在 ASP.NET 設定為使用加密但不透過提供的 MachineKeyProtection 引數使用 HMAC 簽署時,設定 ASP.NET 不透過 MachineKey 類別執行 HMAC 簽署驗證。注意 這個設定可能會允許惡意用戶端解密、偽造,或以其他方式竄改加密資料。

若要設定這個設定,將下列設定加入您的電腦或應用程式的 web.config 檔案:

<configuration> ... <appSettings> ... <add key="aspnet:UseLegacyMachineKeyEncryption" value="false" /> </appSettings> </configuration> 

aspnet:ScriptResourceAllowNonJsFiles appSetting 的說明

這個應用程式設定可指定 ASP.NET 中的 ScriptResource.axd 處理常式是否供應非 JavaScript 檔案 (副檔名為 .js)。ScriptResource.axd 是 ASP.NET 處理常式,可在 ASP.NET 網頁中,將 JavaScript 來源檔案傳回至 AJAX 元件。

aspnet:ScriptResourceAllowNonJsFiles

描述

False (預設值)

這個設定可設定 ASP.NET 透過 ScriptResource.axd 處理常式,只供應副檔名為 .js (JavaScript) 的靜態檔案。

True

這個設定可設定 ASP.NET 供應任何 ASP.NET 應用程式可透過 ScriptResource.axd 處理常式進行存取的靜態檔案。注意這個設定可讓 ASP.NET 應用程式內的所有檔案透過處理常式供應。如果這類型的檔案中包含有敏感性或機密性資料,則這個設定可能會將敏感性資訊洩漏給用戶端。

若要設定這個設定,將下列設定加入您的電腦或應用程式的 web.config 檔案:

<configuration> ... <appSettings> ... <add key="aspnet:ScriptResourceAllowNonJsFiles" value="false" /> </appSettings> </configuration> 

參考

如需更多有關 MachineKey 區段的資訊,請造訪下列 Microsoft 網站:

http://msdn.microsoft.com/zh-tw/library/w8h3skw9.aspx 如需更多有關 System.Web.Security.MachineKey 類別的資訊,請造訪下列 Microsoft 網站:

http://msdn.microsoft.com/zh-tw/library/system.web.security.machinekey.aspx 如需更多有關如何使用應用程式設定 (appSettings) 的資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:

815786 如何透過使用 Visual C# 儲存和擷取應用程式設定檔案中的自訂資訊 313405 如何透過使用 Visual Basic .NET 或 Visual Basic 2005 儲存和擷取應用程式設定檔案中的自訂資訊 如需更多有關 ASP.Net 設定的資訊,請按一下下面的文章編號,檢視 Microsoft 知識庫中的文件:

307626 INFO: ASP.NET 設定概觀

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。