外接程序安全性

更新:2007 年 11 月

为了防止恶意外接程序自动激活进而增强安全性,Visual Studio 2005 在名为“外接程序/宏的安全性”的“工具选项”页中提供了一些设置。

另外,该选项页使您可以指定供 Visual Studio 在其中搜索 .Addin 注册文件的文件夹。这种方式可让您对可读取 .Addin 注册文件的位置进行限制,并可帮助防止意外使用恶意 .Addin 文件,增强了安全性。

外接程序安全性设置

“选项”对话框 ->“环境”->“外接程序/宏的安全性” 中与外接程序安全性相关的设置为:

  • “允许加载外接程序组件”默认情况下被选中。在选中时,允许在 Visual Studio 中加载外接程序。在未选中时,禁止在 Visual Studio 中加载外接程序。

  • “允许从 URL 加载外接程序组件”默认情况下未选中。在选中时,允许从外部网站加载外接程序。在未选中时,禁止在 Visual Studio 中加载远程外接程序。如果某个外接程序由于某种原因无法加载,则无法从网站加载它。此设置只控制外接程序 DLL 的加载。.Addin 注册文件必须始终位于本地系统上。

默认的 .Add-In 文件搜索位置

除安全设置外,选项页还有一个列表,它包含要在其中搜索 .Addin 注册文件的文件夹。默认情况下,包含以下标记:

  • %ALLUSERSPROFILE%

  • %APPDATA%

  • %USERPROFILE%

  • %VSAPPDATA%

  • %VSCOMMONAPPDATA%

Visual Studio 开始搜索 .AddIn 文件时,会将这些标记替换为以下路径字符串:

标记

路径

%ALLUSERSPROFILE%

C:\Documents and Settings\All Users\Application Data\Microsoft\MSEnvShared\Addins

%APPDATA%

C:\Documents and Settings\<用户名>\Application Data\Microsoft\MSEnvShared\Addins

%USERPROFILE%

C:\Documents and Settings\<用户名>\My Documents\Visual Studio 2005\Addins

%VSAPPDATA%

C:\Documents and Settings\<用户名>\Addins

%VSCOMMONAPPDATA%

C:\Documents and Settings\All Users\Addins

通过突出显示该标记并单击“移除”,可以从列表中移除这些预定义标记。若要向搜索列表添加其他文件夹,请单击“添加”并在“浏览文件夹”对话框中指定文件夹。有关更多信息,请参见外接程序注册

限制选项页修改

若要防止用户修改“外接程序/宏的安全性”选项页中的设置,管理员可以在系统注册表中设置一个值。该值名为 AllowUserToModifySecuritySettings,并存储在 HKLM\Software\Microsoft\VisualStudio\8.0\AutomationProperties 项下。如果该项值不存在或者设置为 0,则“外接程序/宏的安全性”页中的所有选项都被禁用。(也就是说,不能更改该页上的设置。) 相同的设置应用于宏集成开发环境(“宏 IDE”),但是注册表项位置为 HKLM\Software\Microsoft\VSA\8.0\AutomationProperties

“外接程序/宏的安全性”页的设置存储在注册表中的 HKLM\Software\Microsoft\VisualStudio\8.0\AutomationPropertiesHKCU\Software\Microsoft\VisualStudio\8.0\AutomationProperties 项下。安全按钮首先通过查找 HKEY_LOCAL_MACHINE 下的项来接收其值。如果该项不存在,则使用 HKEY_CURRENT_USER 值。例如,这样就使管理员可以启用加载外接程序和宏,但允许用户选择禁用加载这些组件。不过,如果管理员已经禁用加载外接程序或宏,没有管理员权限的用户则无法启用加载外接程序和宏。如果已选中加载外接程序的设置,则从 HKLM\SOFTWARE\Microsoft\VisualStudio\8.0\AutomationOptions\LookInFoldersHKCU\SOFTWARE\Microsoft\VisualStudio\8.0\AutomationOptions\LookInFolders 项下指定的文件夹中搜索可能的 .Addin 文件。

更改此页上的选项的管理员可以将值写入 HKEY_LOCAL_MACHINE 注册表配置单元下的任何项,该注册表配置单元用于修改计算机上所有用户的这些设置。

请参见

概念

自动化安全的最佳做法

外接程序注册

宏安全性和共享问题

参考

“选项”对话框 ->“环境”->“外接程序/宏的安全性”