安全的部署 (2003 系統)
更新:2007 年 11 月
適用於 |
---|
本主題中的資訊僅適用於指定的 Visual Studio Tools for Office 專案和 Microsoft Office 版本。 專案類型
Microsoft Office 版本
如需詳細資訊,請參閱依應用程式和專案類型提供的功能。 |
當您建立 Visual Studio Tools for Office 方案時,本機安全性原則會自動更新,以允許您執行專案中的程式碼。但是,當您部署方案時,您必須在使用方案的每一部電腦上明確地更新安全性原則,授與組件程式碼執行及存取 Office 物件模型的使用權限。
在文件層級自訂中,如果您將文件部署到網路位置,則必須同時更新該文件的安全性原則。如需如何在使用者電腦上設定安全性原則的詳細資訊,請參閱部署安全性原則。如需文件層級自訂的詳細資訊,請參閱 文件層級自訂的架構。
強式名稱和憑證
安全部署方案的建議方式是對組件使用強式名稱,並且使用 Authenticode (x.509) 憑證簽章,或者同時使用這兩種方式來增加額外的安全性和管理性。強式名稱和 Authenticode 簽章可以提供高度的安全性,因為只要有人修改過您的程式碼就會使強式名稱或簽章無效。Authenticode 簽章還有一些其他優點:
Authenticode 簽章可以加上時間戳記。
憑證可以撤銷。
憑證會提供發行者 (Publisher) 的識別 (Identity)。
如需強式名稱組件的詳細資訊,請參閱強式名稱的組件和建立和使用強式名稱的組件。
如需 Authenticode 簽章的詳細資訊,請參閱部署和 Authenticode 簽章。
選擇安全性層級
您必須權衡嚴格規則在安全性方面的優點以及鬆散規則在系統管理上的優點,然後選擇適當的信任層級。例如,如果您的方案一直是部署在名為 \\appserver\ 的伺服器上,而且一直是以公司憑證簽署,您就可以在 \\appserver\ 上選擇一項只信任公司憑證的規則。如此,可協助保護您對抗惡意的使用者竊取憑證並且在網際網路上發行程式碼 (除非程式碼是來自 \\appserver\,否則就不會受信任)。但是這也意味著,如果您以後想要將組件儲存在不同的伺服器上,就必須再次更新安全性原則。
如果您不確定專案會部署在什麼位置,合理的權衡方式是從本機電腦和近端內部網路信任憑證或強式名稱。如果您打算透過 Web 散發程式碼,您也可以使用 Internet Explorer 之安全性選項中的 [信任的網站] 區域。您不應該信任來自 [網際網路] 區域、[限制的網站] 區域或位於最高層級 (所有程式碼) 的憑證,除非您有非常充分的商務理由需要這樣做。如果必須這麼做,請採取適當的預防措施,確保即使惡意使用者取得程式碼時,程式碼也能安全無虞。如需詳細資訊,請參閱程式碼存取安全性。
如需可能威脅的詳細資訊,請參閱指定 Office 方案的安全性考量。
授與組件存取權限
文件層級自訂的其中一個部署選項是在本機將文件部署至每位使用者,並將組件部署至網路位置。同樣地,若為應用程式層級增益集 (Add-In),您也可以將增益集組件部署至網路位置。組件必須受到信任才能在 Office 方案中執行。請數位簽署組件並僅授與系統管理員 (和必須修改組件的任何人) 該位置的寫入權限。如需在部署前保護組件安全的詳細資訊,請參閱組件安全性考量。
您可以使用 [Microsoft .NET Framework 2.0 組態] 工具或 [程式碼存取安全性原則] 工具 (Caspol.exe) 來設定信任組件的企業層級原則。
如需 .NET Framework 組態工具的詳細資訊,請參閱 .NET Framework 組態工具 (Mscorcfg.msc)。如需 Caspol.exe 的詳細資訊,請參閱程式碼存取安全性原則工具 (Caspol.exe) 和使用程式碼存取安全性原則工具 (Caspol.exe) 設定安全性原則。
將組件部署到最終位置 (或更新已部署的組件) 之前,請先檢查您的安全性原則並且決定要使用何種辨識項來盡量減少風險。如需詳細資訊,請參閱執行 Office 方案的安全性需求 (2003 系統)。
保護網路上的文件
對於文件層級自訂而言,如果文件是放在伺服器或網路共用上,就必須對文件的 URL 授與完全信任。這種情況很適合僅能由受信任者修改的範本或個別文件。您必須確保未受信任的使用者無權修改或取代共用位置上的文件。
如果系統管理員希望讓使用者存取公用的共用位置 (例如 SharePoint 入口網站) 上的文件,就必須修改原則為文件加入新的程式碼群組。這個程式碼群組是設定在成員資格條件之外,它會尋找 Office 文件做為辨識項的片段,並且讓系統管理員據此做成信任決策 (就如同系統管理員必須明確地加入程式碼群組來信任組件)。如需詳細資訊,請參閱HOW TO:在共用位置中授與文件和活頁簿使用權限 (2003 系統)。
電子郵件散發
根據預設,在文件層級自訂中,如果您直接從電子郵件訊息開啟文件,組件並不會執行。但是,這個文件可以儲存到本機硬碟,然後按照一般方式開啟。如果文件的應用程式資訊清單中含有完任信任之組件的完整路徑,方案就會執行。
您可以讓文件從 Outlook 的暫存資料夾裝載程式碼,但是最好不要這樣做。這樣會帶來低到中等程度的安全性風險,因為萬一已授與完全信任的已部署組件中有弱點,惡意的使用者可以在電子郵件中附加一個指向這個組件的文件並且鼓勵收件者開啟它,藉此利用這項弱點。如果得逞,攻擊者就可以利用目標使用者的認證存取保護的內部網路網站。請注意,這個組件仍然必須明確地獲得完全信任;攻擊者無法隨意建立文件和組件並且誘騙使用者執行它。
變更安全性原則
如果系統管理員調整了文件或組件的使用權限,使用者必須先結束然後重新啟動所有 Office 應用程式才能讓這些變更付諸執行。
有時候,在使用者結束應用程式後,Office 應用程式處理序會繼續執行,導致安全性原則變更無法生效。請檢查 [工作管理員] 並確定 Office 應用程式並不在現用處理序的清單中。
裝載 Office 應用程式的其他應用程式也可能會阻礙新的使用權限付諸執行。安全性原則變更之後,使用者應該結束使用 Office (無論是裝載的或獨立的) 的所有應用程式,包括 Internet Explorer。
防止文件層級自訂執行程式碼
系統管理員可以使用登錄來防止所有的文件層級自訂在電腦上執行。當含有 Managed 程式碼擴充的 Word 文件或 Excel 活頁簿開啟時,Visual Studio Tools for Office Runtime 就會在電腦上檢查名為 Disabled 的項目是否存在下列其中一個登錄機碼 (Registry Key) 底下:
HKEY_CURRENT_USER\Software\Microsoft\VSTO
HKEY_LOCAL_MACHINE\Software\Microsoft\VSTO
若要防止文件層級自訂執行程式碼,請在其中一個或兩個登錄機碼底下建立 Disabled 項目,然後為 Disabled 指定下列其中一個資料型別和值:
REG_SZ 或 REG_EXPAND_SZ,並設定為 "0" (零) 以外的任何字串。
REG_DWORD,並設定為 0 (零) 以外的任何值。
雖然使用者仍然可以在文件層級自訂停用時開啟文件並進行變更,但是組件中的程式碼將無法執行。若要讓文件層級自訂執行程式碼,請同時將兩個 Disabled 項目設定為 0,或是刪除這些登錄項目。
請參閱
工作
HOW TO:從文件移除 Managed 程式碼擴充 (2003 系統)