Поделиться через


Требования безопасности при выполнении решений Office (для системы 2003)

Обновлен: Ноябрь 2007

Применение

Сведения, приведенные в данном разделе, относятся только к указанным проектам Visual Studio Tools for Office и версиям Microsoft Office.

Тип проекта

  • Проекты уровня документа

  • Проекты уровня приложения

Версия Microsoft Office

  • Microsoft Office 2003

Дополнительные сведения см. в разделе Доступность функций по типам приложений и проектов.

Настройки на уровне документа и надстройки на уровне приложения используют функции безопасности, доступные в платформе .NET Framework. Это позволяет решению получить преимущество в диапазоне ссылок, на которых основываются решения о доверии.

Для развертывания и выполнения решения Microsoft Office необходимо предоставить полное доверие сборкам в политике безопасности каждого конечного пользователя. Если во время настройки документ находится в сетевой папке, а не на пользовательском компьютере, этому документу также должно предоставляться полное доверие. Сведения о настройке политики безопасности на компьютерах конечных пользователей см. в разделе Развертывание политики безопасности.

Решения Microsoft Office добавляют пользовательские ограничения, не принимая All Code (любой управляемый код) или типы свидетельства на основе зон; это означает, что приложения Microsoft Office не выполняют сборок на локальном компьютере, в локальной сети или в Интернете, до тех пор, пока сборке не будет предоставлено разрешение (доверие) политикой безопасности.

Microsoft Office Outlook включает систему безопасности объектной модели, которая позволяет предотвратить доступ ненадежного кода к объектной модели Outlook. Во время выполнения кода система безопасности объектной модели может вызывать появления предупреждений в Outlook для конечного пользователя. Дополнительные сведения о способах, позволяющих избежать появления предупреждений см. в разделе Рекомендации по обеспечению безопасности для решений Office.

Уровни доверия

В системе безопасности платформы .NET Framework существует три уровня доверия.

  • Полное доверие. Этот уровень предоставляет коду разрешение на выполнение любых действий, к которым имеет доступ текущий пользователь. Для возможности выполнения в решениях Office всему коду должно предоставляться полное доверие.

  • Частичное доверие. На данном уровне предоставляется ограниченный набор разрешений (только определенные разрешения). Код с неполным доверием не может выполняться в решениях Office.

  • Без доверия. Этот уровень не предоставляет разрешений, поэтому выполнение кодов на данном уровне невозможно.

Для выполнения в решениях Office требуются наборы разрешений с полным доверием. Расширения управляемых кодов без доверия или с частичным доверием не выполняются. Дополнительные сведения о наборах разрешений см. в разделе Именованные наборы разрешений.

Типы свидетельств

В системе безопасности платформы .NET Framework выделяют следующие типы свидетельств.

Дополнительные сведения см. в разделе Свидетельство.

Visual Studio использует свидетельство URL-адреса для предоставления полного доверия проектам во время их построения. При построении проекта Visual Studio Tools for Office Visual Studio изменяет политику безопасности на уровне пользователя для предоставления полного доверия местам сборки проектов Office. Во время выполнения настройки или надстроек загрузчик сообщает системе политики безопасности URL-адрес места сборки, тем самым предоставляя полное доверие определенным расположениям.

Этот уровень безопасности достаточен при работе на собственном компьютере, однако, может представлять угрозу безопасности в случае использования этого свидетельства при развертывании решения. Перед развертыванием сборки следует предоставить ей более строгую форму свидетельства. Использование более строгой формы свидетельства рекомендуется по двум причинам.

  • В случае предоставления полного доверия месторасположению на веб-узле, злоумышленники, имеющие доступ с правом записи к этому месту расположения, могут заменять сборку собственным кодом и обманным путем склонять пользователей к его выполнению.

  • Политика уровня компьютера по умолчанию предоставляет частичное доверие всем веб-узлам, однако, поскольку требуется полное доверие, установки политики уровня пользователя для предоставления полного доступа URL-адресу может быть недостаточно.

При использовании свидетельства URL-адреса убедитесь в том, что политика установлена в ответвлении зоны интрасети на уровне компьютера, а не на уровне пользователя. Кроме того, следует предоставлять полное доверие только тем местам, доступ с правами записи к которым имеют только надежные пользователи. Рекомендуется использовать комбинацию мест и криптографически строгое свидетельство, например, строгое имя. Строгие имена всегда следует использовать совместно с данными расположения, чтобы в случае возникновения угрозы для приложения со строгим именем его можно было безопасно исправить.

В настройках уровня документа документу также предоставляется свидетельство на основе расположения, что усложняет переориентацию надежного кода путем создания документов, использующих код для непредусмотренных целей злоумышленниками. Если документ с расширениями управляемого кода находится в ненадежном расположении, этот документ не может выполнять сборку. По умолчанию зоне MyComputer предоставляется полное доверие, поэтому документы на пользовательском компьютере могут выполнять код, при этом зона Интернета не является полностью надежной.

Документы с расширениями управляемого кода не используют безопасность макросов Office, основанную на хранилище сертификатов Office. Безопасность макросов не связана с безопасностью сборки.

Дополнительные сведения о безопасности в .NET Framework см. в разделе Основы управления доступом для кода, общие сведения см. в разделах Безопасность в .NET Framework и Общие сведения об администрировании политики безопасности.

Общие сведения о безопасности сборки

Расположение сборки

Параметры по умолчанию

Руководство по установке

Компьютер разработчика

При построении проекта Office главной сборке и всем сборкам со свойством Копировать локально, на которые посылается проект, и для которых установлено значение true, предоставляется полное доверие на компьютере.

Пользователю нет необходимости производить какие-либо действия.

Сетевая общая папка

Сборкам не предоставляется доверие.

Администратор устанавливает политику безопасности сети, предоставляющую доверие папке и защиту для сборки (например, цифровой подписью). Дополнительные сведения см. в разделе Вопросы безопасности сборок.

Компьютер конечного пользователя

Сборкам не предоставляется доверие.

Администратор предоставляет доверие сборке в политике безопасности пользователя. Дополнительные сведения см. в разделе Развертывание политики безопасности.

Общие сведения о безопасности документа

Расположение документа

Параметры по умолчанию

Руководство по установке

Компьютер разработчика

Документы, имеющие полное доверие.

Пользователю нет необходимости производить какие-либо действия.

Сетевая общая папка

Документы, не имеющие доверия.

Администратор устанавливает политику безопасности сети, предоставляющую доверие расположению, и, при необходимости, задает политику уровня пользователя для предоставления доверия только документам Office. Дополнительные сведения см. в разделе Практическое руководство. Предоставление разрешения документам и книгам в общих расположениях (система 2003).

Компьютер конечного пользователя

Документы, имеющие полное доверие.

Пользователю нет необходимости производить какие-либо действия.

Безопасность на компьютере разработчика

При построении проекта Office в Visual Studio разработчик по умолчанию добавляет полный путь сборки (включая имя сборки) к политике безопасности .NET Framework на уровне пользователя. Таким образом сборке предоставляется полное доверие. Сборкам в выходной папке, на которые имеются ссылки, также предоставляется полное доверие после завершения работы над проектом.

Если параметры по умолчанию не изменены, Visual Studio Tools for Office проверяет политику безопасности в кэше при каждом построении решения. Если сборки не имеют полного доверия, Visual Studio Tools for Office предоставляет его. Это позволяет сохранить доверие даже в случае переименования сборки или изменения расположения проекта.

При изменении параметров доверия по умолчанию (для свойства Расположение доверенных сборок устанавливается значение false) Visual Studio не предоставляет полного доверия сборкам, следовательно код не выполняется. Чтобы восстановить выполнение кода, для свойства Расположение доверенных сборок, необходимо установить значение true и построить решение заново. Кроме того, можно установить глобальное правило, позволяющее всему коду, который выполняется в папке "Свойства" и во вложенных папках, получить полное доверие.

Дополнительные сведения об установке параметров доверия для проекта и предоставлении полного доступа к папкам см. в разделе Практическое руководство. Предоставление разрешений папкам и сборкам (Система 2003).

Кэширование политики безопасности

Общеязыковая среда выполнения кэширует политику безопасности для каждого процесса. При построении проектов Visual Studio проверяет, имеют ли сборки полное доверие в кэше. Если при запуске Visual Studio сборки уже имеют полное доверие, Visual Studio не создает для них политику во время процесса построения.

Если во время выполнения Visual Studio политика безопасности проекта изменяется, Visual Studio не определит эти изменения. Если внесенные изменения препятствуют выполнению проекта, приложение создает исключение безопасности, так как Visual Studio не восстанавливает политику для предоставления полного доверия сборкам. Чтобы разрешить Visual Studio определять изменения в политике безопасности, необходимо закрыть и повторно открыть это приложение.

Решения, связанные с использованием ранних версий

Каждая версия Microsoft .NET Framework, установленная на компьютере, имеет соответствующую политику безопасности. Решения Visual Studio Tools for Office проверяют политику безопасности версии .NET Framework, для которой они были созданы. Таким образом, если решение создается с помощью Visual Studio Tools for Office, версия 2003, оно всегда проверяет политику безопасности .NET Framework версии 1.1. Если решение создается с помощью Visual Studio 2005 Tools for Office, оно всегда проверяет политику безопасности .NET Framework версии 2.0.

Решения Visual Studio Tools for the Office system 3.0 проверяют .NET Framework версии 3.5, в то время как решения для Office 2003 могут использовать .NET Framework 2.0. Дополнительные сведения см. в разделе Практическое руководство. Изменение требуемой версии платформы .NET Framework

Проекты, созданные в сети

Несмотря на возможность создания проекта в сетевой общей папке, его выполнение в сети будет невозможным до тех пор, пока приложение не получит полный доступ уровня компьютера. По умолчанию Visual Studio Tools for Office предоставляет свидетельство URL-адреса уровня пользователя. Необходимо вручную предоставить сборке режим полного доверия уровня компьютера.

Если для предоставления полного доверия сетевой папке используется только свидетельство URL-адреса, злоумышленники, имеющие доступ с правом записи к этому месту расположения, могут заменять сборку собственным кодом и обманным путем склонять пользователей к его выполнению. Следует также рассматривать другие формы свидетельства, которые могут использоваться вместо или в дополнение к свидетельству URL-адреса. Дополнительные сведения см. в разделе Типы свидетельства.

Безопасность для конечных пользователей

Документы с расширениями управляемого кода открываются конечными пользователями таким же образом, как открываются любые другие документы. Если документ находится на компьютере конечного пользователя или имеет доверие на сетевую папку, Word или Excel попытается загрузить и выполнить сборку. Для надстроек: надстройки загружаются при запуске приложения Microsoft Office.

Приложение Microsoft Office проверяет политику безопасности и выполняет следующее.

  • Если сборке и документу (если применимо) явно даны разрешения, сборка может выполняться. Дополнительные сведения об установке политики безопасности на компьютерах конечных пользователей см. в разделе Развертывание политики безопасности.

  • Если единственным свидетельством для определения разрешений является All Code или свидетельство на основе зон, код не выполняется и пользователь получает сообщение об ошибке, в котором указано, что текущая политика безопасности препятствует выполнению кода. В этом случае пользователю необходимо связаться с администратором, чтобы установить политику, которая позволит выполнить код.

Политика безопасности Visual Studio Tools for Office по умолчанию не допускает выполнение кода в настройках. По умолчанию политикой безопасности предоставляется доверие зоне "Мой компьютер", однако, политика домена приложения для документов с расширениями управляемого кода не допускает выполнение кода в зоне "Мой компьютер", до тех пор, пока коду явно не будет предоставлено доверие. Такая конфигурация отличается от стандартных пользовательских установок и установок разработчика, однако, используя настройки по умолчанию, она обеспечивает лучшую безопасность для компьютера. Кроме того, конечные пользователи не могут изменять параметры безопасности в Office, таким образом, чтобы разрешить выполнение ненадежного кода. Только явные изменения, внесенные в политику безопасности .NET, позволяют выполнять расширения управляемого кода.

Предоставление доверия документам Office

В большинстве случаев документ Office запускается из зоны MyComputer, при этом, чтобы открыть документ, пользователю не нужно выполнять никаких действий. Однако, чтобы выполнить приложение, необходимо предоставить полное доверие сборке. В случае, когда документ передается в качестве вложения сообщения электронной почты (даже если документ указывает на надежную сборку), перед выполнением решения его необходимо сохранить на компьютер (например, на рабочий стол). Это необходимо из-за того, что вложенный документ находится в зоне Интернета, которая не имеет полного доверия.

Если документ размещен в сети, администратор должен предоставить разрешения на выполнение документа. Для статических документов, таких как шаблоны, администратор может предоставлять доверие на основе полного пути документа (URL-адрес). Для большинства общих хранилищ, куда пользователи передают произвольное содержимое, например, списка SharePoint, администратор может предоставлять доверие только документам Office, размещенным в общей папке. Дополнительные сведения см. в разделе Практическое руководство. Предоставление разрешения документам и книгам в общих расположениях (система 2003).

Удаление доверия из сборок

Если администратор обнаружит, что в системе безопасности организации возникли проблемы, он может временно отключить все управляемые коды, применив политику, не допускающую выполнения всех кодов. Если требуется применение определенного управляемого кода, администратор может изменить политику, чтобы выполнить только этот код, указав уникальное свойство кода (а именно расположение, строгое имя или подпись) и предоставив необходимые разрешения. Управляемый код может быть легко восстановлен обратными переменами в политике после устранения проблем в системе безопасности. Дополнительные сведения см. в разделе Практическое руководство. Удаление разрешений для папок и сборок (система 2003).

См. также

Основные понятия

Безопасное развертывание (Система 2003)

Рекомендации по безопасности для решений Office (система 2003)

Рекомендации по обеспечению безопасности для решений Office

Защита приложений

Другие ресурсы

Безопасность в решениях Office (система 2003)