Конфиденциальность и безопасность надстроек Office
Безопасность процесса
Надстройки Office защищены средой выполнения надстроек (многоуровневой моделью разрешений) и регуляторами производительности. Эта платформа защищает взаимодействие с пользователем следующими способами.
Доступ к фрейму пользовательского интерфейса клиентского приложения Office управляется.
Разрешен только косвенный доступ к потоку пользовательского интерфейса клиентского приложения Office.
Модальное взаимодействие запрещено. Например, вызовы методов JavaScript
alert
,confirm
иprompt
не допускаются, так как они являются модальными.
Кроме того, платформа среды выполнения предоставляет следующие преимущества, чтобы надстройка Office не могла повредить среду пользователя.
изолирует процесс, в котором работает надстройка;
не требует замены DLL- или EXE-файлов, а также компонентов ActiveX;
упрощает установку и удаление надстроек.
Кроме того, вы можете управлять тем, как надстройки Office используют память, ЦП и сетевые ресурсы. Это позволяет поддерживать надлежащую производительность и надежность.
Примечание.
В некоторых сценариях различные функции надстройки выполняются в отдельных средах выполнения. Для простоты в этой статье используется единственная "среда выполнения". Дополнительные сведения см. в разделе Среды выполнения в надстройках Office.
В следующих разделах кратко описывается, как архитектура среды выполнения поддерживает запуск надстроек в клиентах Office на устройствах с Windows, на устройствах Mac OS X и в веб-браузерах.
Клиенты на устройствах с Windows и OS X
В поддерживаемых клиентах для настольных компьютеров и планшетов, таких как Excel в Windows и Outlook для Windows (классическая версия) и на Mac, надстройки Office поддерживаются путем интеграции внутрипроцессного компонента— среды выполнения надстроек Office, которая управляет жизненным циклом надстройки и обеспечивает взаимодействие между надстройкой и клиентским приложением. Сама веб-страница надстройки размещается вне процесса. На рабочем столе или планшете с Windows веб-страница надстройки размещается в элементе управления Internet Explorer или Microsoft Edge , который, в свою очередь, размещается в процессе выполнения надстройки, обеспечивающем изоляцию безопасности и производительности.
На рабочих столах Windows для зоны ограниченного сайта должен быть включен защищенный режим в Internet Explorer. Обычно этот режим включен по умолчанию. Если он отключен, при запуске надстройки возникнет ошибка.
На рабочем столе macOS веб-страница надстройки размещается внутри изолированного процесса узла среды выполнения WebKit, что помогает обеспечить аналогичный уровень безопасности и защиты производительности.
Среда выполнения надстроек Office управляет взаимодействием процессов, преобразованием вызовов и событий API JavaScript в собственные вызовы и события, а также обеспечивает удаленную поддержку пользовательского интерфейса для отображения надстройки внутри документа, в области задач или рядом с электронным письмом, приглашением на собрание или встречей.
Веб-клиенты
В поддерживаемых веб-клиентах надстройки Office размещаются в iframe , который выполняется с помощью атрибута песочницы HTML5. Компоненты ActiveX и навигация по главной странице веб-клиента запрещены. Поддержка надстроек Office в веб-клиентах возможна благодаря интеграции API JavaScript для Office. API JavaScript управляет жизненным циклом надстройки и взаимодействием между надстройкой и веб-клиентом аналогично клиентским приложениям на компьютерах. Это взаимодействие реализуется с помощью специальной инфраструктуры отправки сообщений между фреймами. Для взаимодействия с веб-клиентом доступна та же библиотека JavaScript (Office.js), которая используется на клиентах на компьютерах. На следующем рисунке показана инфраструктура, которая поддерживает надстройки в Office, запущенные в браузере, и соответствующие компоненты (веб-клиент, iframe, среда выполнения надстроек Office и API JavaScript для Office), необходимые для их поддержки.
Целостность надстроек в AppSource
Вы можете публиковать свои надстройки Office в AppSource. AppSource применяет следующие меры для поддержания целостности надстроек.
При обмене данными хост-сервер надстройки Office всегда должен использовать SSL.
Разработчику требуется предоставить доказательство подлинности, контрактное соглашение и соответствующую требованиям политику конфиденциальности для отправки надстроек.
Поддерживается система рецензий пользователей для доступных надстроек, чтобы стимулировать формирование саморегулирующегося сообщества.
Необязательные сетевые функции.
Конечные пользователи и ИТ-администраторы могут отключать дополнительные возможности подключения в Office для клиентов рабочего стола и мобильных клиентов. Для надстроек Office отключение параметра Необязательный подключенный интерфейс заключается в том, что пользователи больше не могут получать доступ к надстройкам или хранилищу Microsoft 365 и Copilot через эти клиенты. Однако некоторые надстройки Майкрософт, которые считаются важными или критически важными для бизнеса, и надстройки, развернутые ИТ-администратором организации через централизованное развертывание , по-прежнему будут доступны. Кроме того, надстройки и microsoft 365 и магазин Copilot остаются доступными в Outlook в Интернете, независимо от состояния параметра.
Дополнительные сведения о поведении Outlook см. в статье Конфиденциальность, разрешения и безопасность для надстроек Outlook.
Обратите внимание, что если ИТ-администратор отключает использование подключенных интерфейсов в Office, это оказывает такое же влияние на надстройки, как и отключение только необязательных подключенных интерфейсов.
Решение вопросов, связанных с конфиденциальностью пользователей
В этом разделе описывается защита, обеспечиваемая платформой надстроек Office, с точки зрения клиента (конечного пользователя), а также приводятся рекомендации по безопасной работе с персональными данными пользователей.
Точка зрения пользователей
При создании надстроек Office используются веб-технологии, работающие в элементе управления браузера или iframe. Из-за этого процесс работы с надстройками похож на просмотр веб-сайтов в Интернете или в интрасети. Надстройки могут быть внешними для организации (если вы приобретаете надстройку из AppSource) или внутренними (если вы приобретаете надстройку из каталога надстроек Exchange Server, каталога приложений SharePoint или общей папки в сети организации). Надстройкам предоставляется ограниченный доступ к сети и большинство из них могут считывать данные из активного документа или почтового элемента, а также записывать в них данные. До того как пользователь или администратор установит или запустит надстройку, платформа надстроек применяет определенные ограничения. Но, как и при использовании любой модели расширений, при запуске незнакомых надстроек пользователю следует предпринимать определенные меры предосторожности.
Примечание.
При первой загрузке надстройки пользователи могут увидеть запрос безопасности на доверие к домену. Это произойдет, если узел домена надстройки находится за пределами домена локального сервера Exchange или Office Online Server.
Платформа надстройки решает проблемы конфиденциальности конечных пользователей следующими способами.
Данные, обмен которыми выполняет тот веб-сервер, на котором размещена контентная надстройка, надстройка Outlook или надстройка области задач, а также данные при взаимодействии между надстройкой и всеми веб-службами, которые она использует, всегда должны быть зашифрованы в соответствии с требованиями протокола SSL.
Перед установкой надстройки из AppSource пользователь может просмотреть политику конфиденциальности и требования этой надстройки. Кроме того, надстройки Outlook, взаимодействующие с почтовыми ящиками пользователей, получают необходимые им разрешения. пользователь может ознакомиться с условиями использования, запрошенными разрешениями и политикой конфиденциальности перед установкой надстройки Outlook.
При общем доступе к документу пользователи также совместно используют вставленные в него или связанные с ним надстройки. Если пользователь открывает документ, содержащий надстройку, которую пользователь ранее не использовал, клиентское приложение Office предлагает пользователю предоставить разрешение на запуск надстройки в документе. В организационной среде клиентское приложение Office также запрашивает у пользователя, если документ поступает из внешнего источника.
Надстройкам, работающим в следующих приложениях Office, запрещен доступ к возможностям устройства пользователя.
Office в Интернете (Excel, Outlook, PowerPoint и Word), работающий в браузерах на основе Chromium, таких как Microsoft Edge или Google Chrome
К возможностям устройства пользователя относятся камера, географическое расположение и микрофон. Дополнительные сведения см. в статье Просмотр, управление и установка надстроек для Excel, PowerPoint и Word.
Пользователи могут включить или отключить доступ к AppSource. Для контентных надстроек и надстроек области задач пользователи управляют доступом к доверенным надстройкам и каталогам из центра управления безопасностью на клиенте Ведущего Office (открывается в> разделеПараметры>центра>управления безопасностью параметров центра управления безопасностью параметров доверенных>каталогов надстроек).
В Outlook доступ к управлению надстройками зависит от клиента Outlook пользователя. Дополнительные сведения см. в статье Использование надстроек в Outlook.
Администраторы также могут управлять доступом к AppSource через Центр администрирования.
Платформа надстройки обеспечивает безопасность и производительность для конечных пользователей следующими способами.
Надстройка Office выполняется в элементе управления веб-браузера, размещенном в среде выполнения надстройки, отдельной от клиентского приложения Office. Такая схема обеспечивает изоляцию как безопасности, так и производительности от клиентского приложения.
Выполнение в элементе управления браузера позволяет надстройке совершать практически любые операции, доступные обычной странице в браузере, и в то же время принуждает ее соблюдать политику единого домена для обеспечения изоляции доменов и зон безопасности.
Надстройки Outlook предоставляют дополнительные функции, способствующие безопасности и производительности, благодаря отслеживанию того, как надстройки Outlook используют ресурсы. Дополнительные сведения см. в статье Конфиденциальность, разрешения и безопасность для надстроек Outlook.
Рекомендации разработчикам по обработке персональных данных
Ниже перечислены некоторые конкретные рекомендации по защите персональных данных для разработчика надстроек Office.
Объект Settings предназначен для сохранения параметров надстройки и данных состояния между сеансами для надстройки содержимого или области задач, но не хранит пароли и другие конфиденциальные личные данные в объекте Settings . Данные в объекте Settings не видны конечным пользователям, но хранятся в формате файла документа, который легко доступен. Следует ограничить использование надстройкой личных сведений и сохранить все личные данные, необходимые для надстройки, на сервере, на котором размещена надстройка, в качестве защищенного пользователем ресурса.
При использовании некоторых надстроек могут быть раскрыты личные сведения. Поэтому необходимо хранить данные удостоверений, сведения о расположениях и времени доступа, а также прочие учетные данные пользователей в безопасном расположении, недоступном другим пользователям надстройки.
Если надстройка доступна в AppSource, требование AppSource протокола HTTPS защищает личные сведения, передаваемые между веб-сервером и клиентским компьютером или устройством. Однако если вы передаете данные на другие серверы, убедитесь, что обеспечивается такой же уровень защиты.
Если вы храните личные сведения пользователей, обязательно сообщите об этом и предоставьте пользователям возможность по своему выбору проверять и удалять их. Если надстройка отправляется в AppSource, можно указать собираемые данные и их использование в заявлении о конфиденциальности.
Варианты реализации разрешений и методики обеспечения безопасности для разработчиков
Чтобы обеспечить поддержку модели безопасности, используемой в надстройках Office, и находить дополнительные сведения для каждого типа надстроек, следуйте приведенным ниже общим указаниям.
Запрос необходимых разрешений
Платформа надстроек предоставляет модель разрешений, с помощью которой надстройка объявляет уровень доступа к данным пользователя, необходимый для выполнения ее функций. Каждый уровень разрешений соответствует подмножеству API JavaScript для Office, которое вашей надстройке разрешено использовать для выполнения своих функций. Например, разрешение WriteDocument для контентных надстроек и надстроек области задач позволяет получить доступ к методу Document.setSelectedDataAsync , который позволяет надстройке записывать данные в документ пользователя, но не разрешает доступ ни к одному из методов чтения данных из документа. Такой уровень разрешений целесообразно использовать для надстроек, которым необходимо только записывать данные в документ, например для надстроек, в которых пользователь может запрашивать вставку данных в свой документ.
Рекомендуется запрашивать разрешения по принципу минимальной привилегии. Другими словами, следует запрашивать разрешения для доступа только к минимальному подмножеству API, необходимому для правильной работы надстройки. Например, если надстройке требуется только считывать данные из документа пользователя, то максимальное разрешение, которое вам следует запросить, — ReadDocument. (Имейте в виду, что если запросить недостаточно разрешений, платформа надстроек запретит надстройке использовать некоторые API, что приведет к ошибке во время выполнения.)
Разрешения указываются в манифесте надстройки, как показано в примере ниже из этого раздела, а пользователи могут просматривать требуемый уровень разрешений перед принятием решения об установке или активации такой надстройки в первый раз. Кроме того, для установки надстроек Outlook, запрашивающих разрешение ReadWriteMailbox, требуются явные права администратора.
В следующем примере показано, как надстройка области задач указывает разрешение ReadDocument в манифесте. Чтобы сконцентрировать внимание на разрешениях, другие элементы в манифесте не отображены.
<?xml version="1.0" encoding="utf-8"?>
<OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ver="http://schemas.microsoft.com/office/appforoffice/1.0"
xsi:type="TaskPaneApp">
... <!-- To keep permissions as the focus, not displaying other elements. -->
<Permissions>ReadDocument</Permissions>
...
</OfficeApp>
Дополнительные сведения о разрешениях для надстроек области задач и контентных надстроек см. в статье Запрос разрешений на использование API в надстройках.
Дополнительные сведения о разрешениях для надстроек Outlook см. в следующих разделах.
Следуйте политике того же источника
Так как надстройки Office — это веб-страницы, которые выполняются в элементе управления веб-браузера, они должны следовать той же политике источника, которая применяется браузером. По умолчанию веб-страница в одном домене не может вызывать веб-службу XmlHttpRequest к другому домену, отличному от того, в котором она размещена.
Одним из способов преодолеть это ограничение является использование JSON/P— предоставление прокси-сервера для веб-службы путем включения тега скрипта с атрибутом src , который указывает на некоторые скрипты, размещенные в другом домене. Вы можете программно создавать теги script, динамически формируя URL-адрес, на который указывает атрибут src, и передавая параметры на URL-адрес через параметры запроса URI. Поставщики веб-служб создают и размещают код JavaScript с использованием определенных URL-адресов и возвращают разные сценарии в зависимости от параметров запроса URI. После этого эти сценарии выполняются в месте их вставки и работают правильно.
Ниже приведен пример JSON/P в образце надстройки Outlook.
// Dynamically create an HTML SCRIPT element that obtains the details for the specified video.
function loadVideoDetails(videoIndex) {
// Dynamically create a new HTML SCRIPT element in the webpage.
const script = document.createElement("script");
// Specify the URL to retrieve the indicated video from a feed of a current list of videos,
// as the value of the src attribute of the SCRIPT element.
script.setAttribute("src", "https://gdata.youtube.com/feeds/api/videos/" +
videos[videoIndex].Id + "?alt=json-in-script&callback=videoDetailsLoaded");
// Insert the SCRIPT element at the end of the HEAD section.
document.getElementsByTagName('head')[0].appendChild(script);
}
Exchange и SharePoint предоставляют клиентские прокси-серверы для обеспечения междоменного доступа. Как правило, та же политика источника в интрасети не так строга, как в Интернете. Дополнительные сведения см. в разделе Та же политика источника, часть 1. Отсутствие просмотра и устранение ограничений политики одного и того же источника в надстройках Office.
Предотвращение вредоносных сценариев между сайтами
Злоумышленник может атаковать источник надстройки, введя вредоносный сценарий через документ или поля надстройки. Разработчик должен соответствующим образом обрабатывать вводимые пользователем данные, чтобы избежать выполнения кода JavaScript злоумышленника в его домене. Ниже приведены некоторые рекомендации по обработке ввода пользователем из документа, почтового сообщения или с помощью полей в надстройке.
Вместо свойства DOM innerHTML используйте свойства innerText и textContent, где это возможно. Выполните следующие действия для поддержки Internet Explorer и Firefox в нескольких браузерах.
var text = x.innerText || x.textContent
Сведения о различиях между innerText и textContent см. в разделе Node.textContent. Дополнительные сведения о совместимости DOM в распространенных браузерах см. в статье Совместимость W3C DOM — HTML.
Если необходимо использовать innerHTML, убедитесь, что входные данные пользователя не содержат вредоносного содержимого, прежде чем передавать его в innerHTML. Дополнительные сведения и пример безопасного использования свойства innerHTML см. в разделе innerHTML.
Если вы используете jQuery, то вместо метода .html() воспользуйтесь методом .text().
С помощью метода toStaticHTML перед отправкой введенных пользователем данных в свойство innerHTML можно удалить из них любые динамические элементы и атрибуты HTML.
С помощью функции encodeURIComponent или encodeURI можно закодировать текст, который будет использоваться в качестве URL-адреса, введенного пользователем или содержащего введенные пользователем данные.
Дополнительные рекомендации по созданию безопасных веб-решений см. в разделе Разработка безопасных надстроек.
Запрет "clickjacking"
Так как надстройки Office отрисовываются в iframe при запуске в браузере с клиентскими приложениями Office, используйте следующие советы, чтобы свести к минимуму риск щелчков — метод, используемый хакерами для обмана пользователей при раскрытии конфиденциальной информации.
Во-первых, определите критичные действия, которые может выполнять надстройка. К ним относятся все действия, которые может использовать злоумышленник, например проведение финансовой транзакции или публикация конфиденциальных данных. Например, надстройка может позволять пользователю отправлять платеж указанному получателю.
Во-вторых, перед выполнением критичных действий надстройка должна запрашивать у пользователя подтверждение. Соответствующее сообщение должно содержать подробное описание последствий выполняемого действия. В нем также должно быть указано, как при необходимости пользователь может предотвратить действие: нажать специальную кнопку "Не разрешать" или проигнорировать подтверждение.
В-третьих, чтобы предотвратить скрытие или маскирование подтверждения, необходимо отобразить его вне контекста надстройки (то есть не в диалоговом окне HTML).
Ниже приведены некоторые примеры того, как можно получить подтверждение.
Отправьте пользователю сообщение электронной почты, которое содержит ссылку для подтверждения.
Отправьте пользователю SMS-сообщение, содержащее код подтверждения, который можно ввести в надстройке.
Откройте диалоговое окно подтверждения в новом окне браузера на странице, на которой невозможно использовать элемент iframe. Обычно это шаблон, который используется страницами входа. Используйте API диалогового окна для создания нового диалогового окна.
Кроме того, убедитесь, что адрес, используемый для связи с пользователем, не мог быть указан субъектом угрозы. Например, для подтверждения оплаты используйте зарегистрированный адрес авторизованной учетной записи пользователя.
Запрос разрешения на доступ к возможностям устройства (относится к Office в Интернете и новому Outlook в Windows)
Если надстройке требуется доступ к возможностям устройства пользователя, например к камере, географическому расположению или микрофону, разработчик должен настроить ее для запроса разрешения у пользователя. Это относится к следующим приложениям Office.
- Office в Интернете (Excel, Outlook, PowerPoint и Word), работающий в браузерах на основе Chromium, таких как Microsoft Edge или Google Chrome
- новый Outlook в Windows
Чтобы запросить разрешение, надстройка должна реализовать API разрешений устройства.
Сведения о том, как пользователю запрашивается разрешение, см. в статье Просмотр, управление и установка надстроек для Excel, PowerPoint и Word.
Примечание.
- Надстройки, которые выполняются в классических клиентах Office или в браузерах, не основанных на Chromium, автоматически отображают диалоговое окно с запросом разрешения пользователя. Разработчику не нужно реализовывать API разрешений устройства на этих платформах.
- Надстройкам, работающим в Safari, запрещен доступ к возможностям устройства пользователя. API разрешений устройства не поддерживается в Safari.
Другие методики обеспечения безопасности
Разработчики также должны принять к сведению следующие методики безопасности.
Разработчикам не следует использовать в надстройках Office элементы ActiveX, так как последние не поддерживают кроссплатформенные возможности платформы надстроек.
Контентные надстройки и надстройки области задач предполагают те же параметры SSL, что и браузер по умолчанию, и позволяет доставлять большую часть содержимого только по протоколу SSL. Надстройки Outlook требуют предоставления всего контента с помощью SSL. Разработчики должны указать в элементе< SourceLocation> манифеста надстройки URL-адрес, использующий ПРОТОКОЛ HTTPS, чтобы определить расположение HTML-файла для надстройки.
Чтобы убедиться, что надстройки не доставляют содержимое по протоколу HTTP, при тестировании надстроек разработчики должны убедиться, что в разделе Свойства браузерана панели управления выбраны следующие параметры, а в сценариях тестирования не отображаются предупреждения системы безопасности.
Убедитесь, что для параметра Отображение разнородного содержимого для зоны Интернет установлено значение Предлагать. Это можно сделать, выбрав в свойствах браузера следующее: на вкладке Безопасность выберите зону Интернета , выберите Пользовательский уровень, прокрутите страницу, чтобы найти отображение смешанного содержимого, и выберите Запрос , если он еще не выбран.
Убедитесь, что выбран параметр Предупреждать о переключении режима безопасности на вкладке Дополнительно диалогового окна Свойства браузера.
Чтобы убедиться, что надстройки не превышают допустимый уровень использования ЦП или памяти и не вызывают отказ в обслуживании на клиентском компьютере, платформа надстроек устанавливает пределы использования ресурсов. В рамках тестирования разработчикам следует убедиться, что надстройка соблюдает данные пределы.
Перед публикацией надстройки разработчикам следует убедиться, что любые личные сведения, указываемые ими в файлах надстройки, защищены.
Разработчикам не следует внедрять ключи, которые они используют для доступа к API-интерфейсам или службам корпорации Майкрософт и других пользователей (например, Bing, Google или Facebook), непосредственно на HTML-страницах надстройки. Вместо этого им следует создать настраиваемую веб-службу или хранить ключи в другом надежном веб-хранилище, к которому они затем смогут отправить вызов, чтобы передать значение ключа в надстройку.
При отправке надстройки в AppSource разработчикам следует выполнить следующие действия.
- разместить отправляемую надстройку на веб-сервере, поддерживающем SSL;
- создать заявление, прописывающее соответствующую требованиям политику конфиденциальности;
- подготовиться к подписанию контрактного соглашения при отправке надстройки.
Кроме соблюдения правил использования ресурсов, разработчики надстроек Outlook должны убедиться, что их надстройки соблюдают ограничения по заданию правил активации и использованию API JavaScript. Дополнительные сведения см . в разделе Ограничения для активации и API JavaScript для надстроек Outlook.
Полномочия ИТ-администраторов
В корпоративной среде ИТ-администраторы обладают высшими полномочиями в том, что касается предоставления или запрета доступа к AppSource и каким-либо частным каталогам.
Управление параметрами Office и их внедрение выполняется с помощью параметров групповой политики. Указанные ниже параметры настраиваются с помощью средства развертывания Office совместно с центром развертывания Office.
Имя параметра | Описание |
---|---|
Разрешить небезопасные веб-надстройки и каталоги | Позволяет пользователям запускать небезопасные надстройки Office, которые являются надстройками Office с расположениями веб-страниц или каталогов, которые не защищены SSL (https://) и не находятся в зонах Интернета пользователей. |
Блокировать веб-надстройки | Позволяет запретить пользователям запускать надстройки Office, использующие веб-технологии. |
Заблокировать Магазин Office | Позволяет запретить пользователям получать или запускать надстройки Office, поступающие из AppSource. |
См. также
- Запрос разрешений на использование API в надстройках
- Конфиденциальность, разрешения и безопасность для надстроек Outlook
- Общие сведения о разрешениях для надстройки Outlook
- Ограничения активации и API JavaScript для надстроек Outlook
- Работа с ограничениями по принципу одинакового источника в надстройках Office
- Принцип одинакового источника
- Принцип одинакового источника. Часть 1. Без просмотра
- Принцип одинакового источника для JavaScript
- Защищенный режим Internet Explorer
- Элементы управления конфиденциальностью для приложений Microsoft 365
Office Add-ins