Конфиденциальность и безопасность надстроек OfficePrivacy and security for Office Add-ins

Общие сведения о среде выполнения надстроекUnderstanding the add-in runtime

Надстройки Office защищены средой выполнения надстроек (многоуровневой моделью разрешений) и регуляторами производительности. Эта инфраструктура защищает пользовательский интерфейс указанными ниже способами.Office Add-ins are secured by an add-in runtime environment, a multiple-tier permissions model, and performance governors. This framework protects the user's experience in the following ways:

  • Доступ к области пользовательского интерфейса ведущего приложения является управляемым.Access to the host application's UI frame is managed.

  • Разрешен только косвенный доступ к потоку пользовательского интерфейса ведущего приложения.Only indirect access to the host application's UI thread is allowed.

  • Модальные взаимодействия запрещены. Например, вызовы функций JavaScript alert, confirm и prompt не разрешены, так как они являются модальными.Modal interactions aren't allowed - for example, calls to JavaScript alert, confirm, and prompt functions aren't allowed because they're modal.

Кроме того, инфраструктура среды выполнения предоставляет следующие возможности, благодаря которым надстройка Office не сможет повредить среду пользователя:Further, the runtime framework provides the following benefits to ensure that an Office Add-in can't damage the user's environment:

  • изолирует процесс, в котором работает надстройка;Isolates the process the add-in runs in.

  • не требует замены DLL- или EXE-файлов, а также компонентов ActiveX;Doesn't require .dll or .exe replacement or ActiveX components.

  • упрощает установку и удаление надстроек.Makes add-ins easy to install and uninstall.

Кроме того, вы можете управлять тем, как надстройки Office используют память, ЦП и сетевые ресурсы. Это позволяет поддерживать надлежащую производительность и надежность.Also, the use of memory, CPU, and network resources by Office Add-ins is governable to ensure that good performance and reliability are maintained.

В следующих разделах вкратце описывается поддержка архитектурой среды выполнения надстроек, работающих в клиентах Office на устройствах под управлением Windows, устройствах Mac с OS X и в веб-браузерах.The following sections briefly describe how the runtime architecture supports running add-ins in Office clients on Windows-based devices, on OS X Mac devices, and in offweball2 clients on the web.

Примечание

Сведения об использовании Windows Information Protection и Intune с надстройками Office см. в статье Защита корпоративных данных с помощью WIP и Intune в документах, для которых используются надстройки Office.To learn about using WIP and Intune with Office Add-ins, see Use WIP and Intune to protect enterprise data in documents running Office Add-ins.

Клиенты на устройствах с Windows и OS XClients on Windows and OS X devices

В поддерживаемых клиентах для настольных компьютеров и планшетов, например в Excel для Windows и Outlook для Windows и Mac, надстройки Office поддерживаются путем интеграции внутрипроцессного компонента — среды выполнения надстроек Office, которая управляет жизненным циклом надстройки и позволяет ей взаимодействовать с клиентским приложением. Сама веб-страница надстройки размещена вне процесса. Как показано на рис. 1, на настольном компьютере или планшете с ОС Windows веб-страница надстройки размещена внутри элемента управления Internet Explorer, который, в свою очередь, размещен внутри процесса среды выполнения надстройки, обеспечивающего безопасность и изоляцию работы.In supported clients for desktop and tablet devices, such as Excel, Outlook, and Outlook for Mac, Office Add-ins are supported by integrating an in-process component, the Office Add-ins runtime, which manages the add-in lifecycle and enables interoperability between the add-in and the client application. The add-in webpage itself is hosted out-of-process. As shown in figure 1, on a Windows desktop or tablet device, the add-in webpage is hosted inside an Internet Explorer control which, in turn, is hosted inside an add-in runtime process that provides security and performance isolation.

На компьютерах с Windows в Internet Explorer для зоны "Опасные сайты" должен быть включен защищенный режим. Обычно этот режим включен по умолчанию. Если он отключен, при запуске надстройки возникнет ошибка.On Windows desktops, Protect Mode in Internet Explorer must be enabled for the Restricted Site Zone. This is typically enabled by default. If it is disabled, an error will occur when you try to launch an add-in.

Рис. 1. Среда выполнения надстроек для Office в клиентах для настольных компьютеров и планшетов под управлением ОС WindowsFigure 1. Office Add-ins runtime environment in Windows-based desktop and tablet clients

Инфраструктура с расширенными возможностями клиента

Как показано на приведенном ниже рисунке, на настольном компьютере Mac под управлением OS X веб-страница надстройки размещается в изолированном хост-процессе среды выполнения WebKit, что обеспечивает аналогичный уровень безопасности и защиты производительности.As shown in the following figure, on an OS X Mac desktop, the add-in web page is hosted inside a sandboxed WebKit runtime host process which helps provide similar level of security and performance protection.

Рис. 2. Среда выполнения надстроек Office в клиентах для Mac под управлением OS XFigure 2. Office Add-ins runtime environment in OS X Mac clients

Среда выполнения приложений для Office на компьютере Mac под управлением OS X

Среда выполнения надстроек Office управляет взаимодействием процессов, преобразованием вызовов и событий API JavaScript в собственные вызовы и события, а также обеспечивает удаленную поддержку пользовательского интерфейса для отображения надстройки внутри документа, в области задач или рядом с электронным письмом, приглашением на собрание или встречей.The Office Add-ins runtime manages interprocess communication, the translation of JavaScript API calls and events into native ones, as well as UI remoting support to enable the add-in to be rendered inside the document, in a task pane, or adjacent to an email message, meeting request, or appointment.

Веб-клиентыWeb clients

В поддерживаемых веб-клиентах надстройки Office размещаются в объекте iframe, который запускается с использованием изолированного атрибута HTML5. Компоненты ActiveX и навигация по главной странице веб-клиента запрещены. Поддержка надстроек Office в веб-клиентах возможна благодаря интеграции API JavaScript для Office. API JavaScript управляет жизненным циклом надстройки и взаимодействием между надстройкой и веб-клиентом аналогично клиентским приложениям на компьютерах. Это взаимодействие реализуется с помощью специальной инфраструктуры отправки сообщений между фреймами. Для взаимодействия с веб-клиентом доступна та же библиотека JavaScript (Office.js), которая используется на клиентах на компьютерах. На следующем рисунке показана инфраструктура, которая поддерживает надстройки в Office, работающем в браузере, и соответствующие компоненты (веб-клиент, iframe, среда выполнения надстроек Office и API JavaScript для Office), необходимые для их поддержки.In supported Web clients, such as Excel Online and Outlook Web App, Office Add-ins are hosted in an iframe that runs using the HTML5 sandbox attribute. ActiveX components or navigating the main page of the web client are not allowed. Office Add-ins support is enabled in the web clients by the integration of the JavaScript API for Office. In a similar way to the desktop client applications, the JavaScript API manages the add-in lifecycle and interoperability between the add-in and the web client. This interoperability is implemented by using a special cross-frame post message communication infrastructure. The same JavaScript library (Office.js) that is used on desktop clients is available to interact with the web client. The following figure shows the infrastructure that supports Office Add-ins in Office Online (running in the browser), and the relevant components (the web client, iframe, Office Add-ins runtime, and JavaScript API for Office) that are required to support them.

Рис. 3. Инфраструктура, поддерживающая надстройки Office в веб-клиентах OfficeFigure 3. Infrastructure that supports Office Add-ins in Office web clients

Инфраструктура веб-клиента

Целостность надстроек в AppSourceAdd-in integrity in AppSource

Вы можете публиковать свои надстройки Office в AppSource. Для поддержания целостности надстроек в AppSource используются указанные ниже меры.You can make your Office Add-ins available to the public by publishing them to AppSource. AppSource enforces the following measures to maintain the integrity of add-ins:

  • При обмене данными хост-сервер надстройки Office всегда должен использовать SSL.Requires the host server of an Office Add-in to always use Secure Sockets Layer (SSL) to communicate.

  • Разработчику требуется предоставить доказательство подлинности, контрактное соглашение и соответствующую требованиям политику конфиденциальности для отправки надстроек.Requires a developer to provide proof of identity, a contractual agreement, and a compliant privacy policy to submit add-ins.

  • Убедитесь, что источник надстроек доступен только для чтения.Ensures that the source of add-ins is accessible in read-only mode.

  • Поддерживается система рецензий пользователей для доступных надстроек, чтобы стимулировать формирование саморегулирующегося сообщества.Supports a user-review system for available add-ins to promote a self-policing community.

Решение вопросов, связанных с конфиденциальностью пользователейAddressing end users' privacy concerns

В этом разделе описывается защита, обеспечиваемая платформой надстроек Office, с точки зрения клиента (конечного пользователя), а также приводятся рекомендации по безопасной работе с персональными данными пользователей.This section describes the protection offered by the Office Add-ins platform from the customer's (end user's) perspective, and provides guidelines for how to support users' expectations and how to securely handle users' personally identifiable information (PII).

Точка зрения пользователейEnd users' perspective

При создании надстроек Office используются веб-технологии, работающие в элементе управления браузера или iframe. Из-за этого процесс работы с надстройками похож на просмотр веб-сайтов в Интернете или в интрасети. По отношению к организации надстройки могут быть внешними (если вы приобрели надстройку в AppSource) или внутренними (если надстройка получена из каталога надстроек Exchange Server, каталога приложений SharePoint либо на файловом ресурсе в сети организации). Надстройкам предоставляется ограниченный доступ к сети и большинство из них могут считывать данные из активного документа или почтового элемента, а также записывать в них данные. До того как пользователь или администратор установит или запустит надстройку, платформа надстроек применяет определенные ограничения. Но, как и при использовании любой модели расширений, при запуске незнакомых надстроек пользователю следует предпринимать определенные меры предосторожности.Office Add-ins are built using web technologies that run in a browser control or iframe. Because of this, using add-ins is similar to browsing to web sites on the Internet or intranet. Add-ins can be external to an organization (if you acquire the add-in from AppSource) or internal (if you acquire the add-in from an Exchange Server add-in catalog, SharePoint add-in catalog, or file share on an organization's network). Add-ins have limited access to the network and most add-ins can read or write to the active document or mail item. The add-in platform applies certain constraints before a user or administrator installs or starts an add-in. But as with any extensibility model, users should be cautious before starting an unknown add-in.

Платформа надстроек обеспечивает конфиденциальность пользователей указанными ниже способами.The add-in platform addresses end users' privacy concerns in the following ways:

  • Данные, обмен которыми выполняет тот веб-сервер, на котором размещена контентная надстройка, надстройка Outlook или надстройка области задач, а также данные при взаимодействии между надстройкой и всеми веб-службами, которые она использует, всегда должны быть зашифрованы в соответствии с требованиями протокола SSL.Data communicated with the web server that hosts a content, Outlook or task pane add-in as well as communication between the add-in and any web services it uses must be encrypted using the Secure Socket Layer (SSL) protocol.

  • Перед установкой надстройки из AppSource пользователь может просмотреть политику конфиденциальности и требования, которые ее касаются. Кроме того, надстройки Outlook, взаимодействующие с почтовыми ящиками пользователей, указывают необходимые им разрешения. Таким образом, перед установкой надстройки Outlook пользователь может просмотреть условия использования, требуемые разрешения и политику конфиденциальности.Before a user installs an add-in from AppSource, the user can view the privacy policy and requirements of that add-in. In addition, Outlook add-ins that interact with users' mailboxes surface the specific permissions that they require; the user can review the terms of use, requested permissions and privacy policy before installing an Outlook add-in.

  • При общем доступе к документу пользователи также совместно используют вставленные в него или связанные с ним надстройки. Если пользователь открывает документ с надстройкой, которая ранее не использовалась, ведущее приложение отображает запрос на предоставление надстройке разрешения на запуск в документе. В среде организации ведущее приложение Office также спрашивает пользователя о том, получен ли документ из внешнего источника.When sharing a document, users also share add-ins that have been inserted in or associated with that document. If a user opens a document that contains an add-in that the user hasn't used before, the host application prompts the user to grant permission for the add-in to run in the document. In an organizational environment, the Office host application also prompts the user if the document comes from an external source.

  • Пользователи могут включить или отключить доступ к AppSource.Users can enable or disable the access to AppSource. Чтобы управлять доступом к доверенным надстройкам (контентным и области задач) и каталогам, откройте центр управления безопасностью в ведущем приложении Office. Для этого выберите Файл > Параметры > Центр управления безопасностью > Параметры центра управления безопасностью > Доверенные каталоги надстроек.For content and task pane add-ins, users manage access to trusted add-ins and catalogs from the Trust Center on the host Office client (opened from File > Options > Trust Center > Trust Center Settings > Trusted Add-in Catalogs). Чтобы управлять надстройками Outlook, выберите Файл > Управление надстройками в Outlook для Windows. В Outlook для Mac нажмите кнопку Управление надстройками на панели надстройки.For Outlook add-ins, uses can manage add-ins by choosing the Manage Add-ins button: in Outlook on Windows, choose File > Manage Add-ins. In Outlook for Mac, choose the Manage Add-ins button on the add-in bar. В Outlook в Интернете выберите меню Параметры (значок шестеренки) > Управление надстройками. Администраторы также могут управлять доступом с помощью групповой политики.In Outlook Web App choose the Settings menu (gear icon) > Manage add-ins. Administrators can also manage this access by using group policy.

  • Структура платформы надстроек обеспечивает безопасную и эффективную работу пользователей благодаря следующим возможностям:The design of the add-in platform provides security and performance for end users in the following ways:

    • Надстройка Office запускается в элементе управления веб-браузера, размещаемом в среде выполнения надстроек, отделенной от ведущего приложения Office. Такая структура обеспечивает изоляцию от ведущего приложения как с точки зрения безопасности, так и c точки зрения производительности.An Office Add-in runs in a web browser control that is hosted in an add-in runtime environment separate from the Office host application. This design provides both security and performance isolation from the host application.

    • Выполнение в элементе управления браузера позволяет надстройке совершать практически любые операции, доступные обычной странице в браузере, и в то же время принуждает ее соблюдать политику единого домена для обеспечения изоляции доменов и зон безопасности.Running in a web browser control allows the add-in to do almost anything a regular web page running in a browser can do but, at the same time, restricts the add-in to observe the same-origin policy for domain isolation and security zones.

Надстройки Outlook позволяют использовать дополнительные функции обеспечения безопасности и производительности. Для этого отслеживается потребление определенных ресурсов надстройками Outlook. Дополнительные сведения см. в разделе Конфиденциальность, разрешения и безопасность для надстроек Outlook.Outlook add-ins provide additional security and performance features through Outlook add-in specific resource usage monitoring. For more information, see Privacy, permissions, and security for Outlook add-ins.

Рекомендации разработчикам по обработке персональных данныхDeveloper guidelines to handle PII

Ниже приведено несколько особых рекомендаций по защите персональных данных при разработке надстроек Office.The following lists some specific PII protection guidelines for you as a developer of Office Add-ins:

  • Объект Settings предназначен для хранения данных о параметрах и состоянии контентных надстроек и надстроек области задач между сеансами. Не следует хранить в объекте Settings пароли и другие конфиденциальные личные сведения. Данные в объекте Settings невидимы для пользователей, но хранятся в документе в легкодоступном формате. Следует ограничить надстройке доступ к личным сведениям и хранить такие сведения, необходимые для работы надстройки, на сервере, на котором размещена надстройка, в виде защищенного от пользователей ресурса.The Settings object is intended for persisting add-in settings and state data across sessions for a content or task pane add-in, but don't store passwords and other sensitive PII in the Settings object. The data in the Settings object isn't visible to end users, but it is stored as part of the document's file format which is readily accessible. You should limit your add-in's use of PII and store any PII required by your add-in on the server hosting your add-in as a user-secured resource.

  • При использовании некоторых надстроек могут быть раскрыты личные сведения. Поэтому необходимо хранить данные удостоверений, сведения о расположениях и времени доступа, а также прочие учетные данные пользователей в безопасном расположении, недоступном другим пользователям надстройки.Using some applications can reveal PII. Make sure that you securely store data for your users' identity, location, access times, and any other credentials so that data won't become available to other users of the add-in.

  • Если надстройка доступна в AppSource, требование AppSource протокола HTTPS защищает личные сведения, передаваемые между веб-сервером и клиентским компьютером или устройством. Однако если вы передаете данные на другие серверы, убедитесь, что обеспечивается такой же уровень защиты.If your add-in is available in AppSource, the AppSource requirement for HTTPS protects PII transmitted between your web server and the client computer or device. However, if you re-transmit that data to other servers, make sure you observe the same level of protection.

  • Если вы храните личные сведения пользователей, обязательно сообщите об этом и предоставьте пользователям возможность по своему выбору проверять и удалять их. Если надстройка отправляется в AppSource, можно указать собираемые данные и их использование в заявлении о конфиденциальности.If you store users' PII, make sure you reveal that fact, and provide a way for users to inspect and delete it. If you submit your add-in to AppSource, you can outline the data you collect and how it's used in the privacy statement.

Варианты реализации разрешений и методики обеспечения безопасности для разработчиковDevelopers' permission choices and security practices

Чтобы обеспечить поддержку модели безопасности, используемой в надстройках Office, и находить дополнительные сведения для каждого типа надстроек, следуйте приведенным ниже общим указаниям.Follow these general guidelines to support the security model of Office Add-ins, and drill down on more details for each add-in type.

Варианты разрешенийPermissions choices

Платформа надстроек предоставляет модель разрешений, с помощью которой надстройка объявляет уровень доступа к данным пользователя, необходимый для выполнения ее функций.The add-in platform provides a permissions model that your add-in uses to declare the level of access to a user's data that it requires for its features. Каждый уровень разрешений соответствует подмножеству API JavaScript для Office, которое вашей надстройке разрешено использовать для выполнения своих функций.Each permission level corresponds to the subset of the JavaScript API for Office your add-in is allowed to use for its features. Например, разрешение WriteDocument для контентных надстроек и надстроек области задач предоставляет доступ к методу Document.setSelectedDataAsync, который позволяет надстройке записывать данные в документ пользователя, но не разрешает доступ к каким-либо методам для чтения данных из документа.For example, the WriteDocument permission for content and task pane add-ins allows access to the Document.setSelectedDataAsync method that lets an add-in write to the user's document, but doesn't allow access to any of the methods for reading data from the document. Такой уровень разрешений целесообразно использовать для надстроек, которым необходимо только записывать данные в документ, например для надстроек, в которых пользователь может запрашивать вставку данных в свой документ.This permission level makes sense for add-ins that only need to write to a document, such as an add-in where the user can query for data to insert into their document.

Рекомендуется запрашивать разрешения по принципу минимальной привилегии. Другими словами, следует запрашивать разрешения для доступа только к минимальному подмножеству API, необходимому для правильной работы надстройки. Например, если надстройке требуется только считывать данные из документа пользователя, то максимальное разрешение, которое вам следует запросить, — ReadDocument. (Имейте в виду, что если запросить недостаточно разрешений, платформа надстроек запретит надстройке использовать некоторые API, что приведет к ошибке во время выполнения.)As a best practice, you should request permissions based on the principle of least privilege. That is, you should request permission to access only the minimum subset of the API that your add-in requires to function correctly. For example, if your add-in needs only to read data in a user's document for its features, you should request no more than the ReadDocument permission. (But, keep in mind that requesting insufficient permissions will result in the add-in platform blocking your add-in's use of some APIs and will generate errors at run time.)

Вы можете указать требуемые разрешения в манифесте надстройки, как показано в примере ниже в этом разделе. Перед установкой или первой активацией надстройки пользователи смогут просмотреть сведения о запрашиваемом уровне разрешений. Кроме того, для установки надстроек Outlook, запрашивающих разрешение ReadWriteMailbox, требуются явные права администратора.You specify permissions in the manifest of your add-in, as shown in the example in this section below, and end users can see the requested permission level of an add-in before they decide to install or activate the add-in for the first time. Additionally, Outlook add-ins that request the ReadWriteMailbox permission require explicit administrator privilege to install.

В примере ниже в манифесте надстройки области задач указано разрешение ReadDocument. Чтобы сконцентрировать внимание на разрешениях, другие элементы в манифесте не отображены.The following example shows how a task pane add-in specifies the ReadDocument permission in its manifest. To keep permissions as the focus, other elements in the manifest aren't displayed.

<?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 в контентных надстройках и надстройках области задач.For more information about permissions for task pane and content add-ins, see Requesting permissions for API use in content and task pane add-ins.

Дополнительные сведения о разрешениях для надстроек Outlook см. в следующих статьях:For more information about permissions for Outlook add-ins, see the following topics:

Политика единого доменаSame origin policy

Так как надстройки Office представляют собой веб-страницы, выполняемые в элементе управления веб-браузера, они должны соответствовать политике единого домена, применяемой браузером: по умолчанию веб-страница, расположенная в одном домене, не может выполнять запросы XmlHttpRequest веб-службы к домену, отличному от домена, в котором она размещена.Because Office Add-ins are webpages that run in a web browser control, they must follow the same-origin policy enforced by the browser: by default, a webpage in one domain can't make XmlHttpRequest web service calls to another domain other than the one where it is hosted.

Один из способов обойти это ограничение — использовать JSON/P, то есть предоставить прокси-сервер веб-службе. Для этого необходимо включить тег script с атрибутом src, который указывает на какой-либо сценарий, размещенный в другом домене. Вы можете программно создавать теги script, динамически формируя URL-адрес, на который указывает атрибут src, и передавая параметры на URL-адрес через параметры запроса URI. Поставщики веб-служб создают и размещают код JavaScript по определенным URL-адресам и возвращают различные сценарии в зависимости от параметров запроса URI. После этого такие сценарии выполняются в месте их вставки и работают правильно.One way to overcome this limitation is to use JSON/P -- provide a proxy for the web service by including a script tag with a src attribute that points to some script hosted on another domain. You can programmatically create the script tags, dynamically creating the URL to which to point the src attribute, and passing parameters to the URL via URI query parameters. Web service providers create and host JavaScript code at specific URLs, and return different scripts depending on the URI query parameters. These scripts then execute where they are inserted and work as expected.

Ниже приведен пример JSON/P в образце надстройки Outlook.The following is an example of JSON/P in the Outlook add-in example.

// 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.
    var 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&amp;callback=videoDetailsLoaded");
    // Insert the SCRIPT element at the end of the HEAD section.
    document.getElementsByTagName('head')[0].appendChild(script);
}

Exchange и SharePoint предоставляют прокси-серверы на стороне клиента, чтобы обеспечить междоменный доступ. В общем случае в интрасетях действуют более мягкие политики единого домена, чем в Интернете. Дополнительные сведения см. в статьях Политика единого домена. Часть 1: без просмотра и Решение вопросов, которые связаны с ограничениями, накладываемыми политикой единого домена, в надстройках Office.Exchange and SharePoint provide client-side proxies to enable cross-domain access. In general, same origin policy on an intranet isn't as strict as on the Internet. For more information, see Same Origin Policy Part 1: No Peeking and Addressing same-origin policy limitations in Office Add-ins.

Советы по предотвращению вредоносных межсайтовых сценариевTips to prevent malicious cross-site scripting

Злонамеренный пользователь может атаковать базовую структуру надстройки, вводя вредоносный сценарий через документ или поля в надстройке.An ill-intentioned user could attack the origin of an add-in by entering malicious script through the document or fields in the add-in. Разработчик должен соответствующим образом обрабатывать вводимые пользователем данные, чтобы избежать выполнения кода JavaScript злоумышленника в его домене.A developer should process user input to avoid executing a malicious user's JavaScript within their domain. Ниже приводятся некоторые рекомендации по обработке вводимых пользователем данных из документа, сообщения или полей надстройки:The following are some good practices to follow to handle user input from a document or mail message, or via fields in an add-in:

  • Вместо свойства DOM innerHTML используйте свойства innerText и textContent, где это возможно. Для обеспечения поддержки Internet Explorer и Firefox используйте указанную ниже строку кода:Instead of the DOM property innerHTML, use the innerText and textContent properties where appropriate. Do the following for Internet Explorer and Firefox cross-browser support:

     var text = x.innerText || x.textContent
    

    Дополнительные сведения о различиях между свойствами innerText и textContent см. в разделе Node.textContent. Дополнительные сведения о совместимости DOM в распространенных браузерах см. в разделе Совместимость DOM W3C: HTML.For information about the differences between innerText and textContent, see Node.textContent. For more information about DOM compatibility across common browsers, see W3C DOM Compatibility - HTML.

  • Если вам необходимо использовать свойство innerHTML, перед отправкой вводимых пользователем данных в свойство innerHTML проверьте, что они не содержат вредоносного контента. Дополнительные сведения и пример безопасного использования свойства innerHTML см. в разделе innerHTML.If you must use innerHTML, make sure the user's input doesn't contain malicious content before passing it to innerHTML. For more information and an example of how to use innerHTML safely, see innerHTML property.

  • Если вы используете jQuery, то вместо метода .html() воспользуйтесь методом .text().If you are using jQuery, use the .text() method instead of the .html() method.

  • С помощью метода toStaticHTML перед отправкой введенных пользователем данных в свойство innerHTML можно удалить из них любые динамические элементы и атрибуты HTML.Use the toStaticHTML method to remove any dynamic HTML elements and attributes in users' input before passing it to innerHTML.

  • С помощью функции encodeURIComponent или encodeURI можно закодировать текст, который будет использоваться в качестве URL-адреса, введенного пользователем или содержащего введенные пользователем данные.Use the encodeURIComponent or encodeURI function to encode text that is intended to be a URL that comes from or contains user input.

  • Дополнительные рекомендации по созданию безопасных веб-решений см. в разделе Разработка безопасных надстроек.See Developing secure add-ins for more best practices to create more secure web solutions.

Советы для предотвращения атак типа кликджекинг (clickjacking)Tips to prevent "Clickjacking"

Так как при использовании ведущих приложений Office надстройки Office выполняются в браузере и отображаются в элементе iframe, следуйте указанным ниже советам, чтобы снизить риск атак типа кликджекинг — методики, используемой злоумышленниками для кражи конфиденциальной информации у пользователей.Because Office Add-ins are rendered in an iframe when running in a browser with Office Online host applications, use the following tips to minimize the risk of clickjacking -- a technique used by hackers to fool users into revealing confidential information.

Во-первых, определите критичные действия, которые может выполнять надстройка. К ним относятся все действия, которые может использовать злоумышленник, например проведение финансовой транзакции или публикация конфиденциальных данных. Например, надстройка может позволять пользователю отправлять платеж указанному получателю.First, identify sensitive actions that your add-in can perform. These include any actions that an unauthorized user could use with malicious intent, such as initiating a financial transaction or publishing sensitive data. For example, your add-in might let the user send a payment to a user-defined recipient.

Во-вторых, перед выполнением критичных действий надстройка должна запрашивать у пользователя подтверждение. Соответствующее сообщение должно содержать подробное описание последствий выполняемого действия. В нем также должно быть указано, как при необходимости пользователь может предотвратить действие: нажать специальную кнопку "Не разрешать" или проигнорировать подтверждение.Second, for sensitive actions, your add-in should confirm with the user before it executes the action. This confirmation should detail what effect the action will have. It should also detail how the user can prevent the action, if necessary, whether by choosing a specific button marked "Don't Allow" or by ignoring the confirmation.

В-третьих, чтобы не позволить потенциальным хакерам скрыть или замаскировать подтверждение, необходимо показывать его вне контекста надстройки (т. е. не в диалоговом окне HTML).Third, to ensure that no potential attacker can hide or mask the confirmation, you should display it outside the context of the add-in (that is, not in an HTML dialog box).

Вот некоторые примеры получения подтверждения.Here are some examples of how you could get confirmation:

  • Отправьте пользователю сообщение электронной почты, которое содержит ссылку для подтверждения.Send an email to the user that contains a confirmation link.

  • Отправьте пользователю SMS-сообщение, содержащее код подтверждения, который можно ввести в надстройке.Send a text message to the user that includes a confirmation code that the user can enter in the add-in.

  • Откройте диалоговое окно подтверждения в новом окне браузера на странице, на которой невозможно использовать элемент iframe. Обычно это шаблон, который используется страницами входа. Создайте новое диалоговое окно с помощью Dialog API.Open a confirmation dialog in a new browser window to a page that cannot be iframed. This is typically the pattern that is used by login pages. Use the dialog api to create a new dialog.

Кроме того, убедитесь, что адрес, используемый для связи с пользователем, не может применяться потенциальным злоумышленником. Например, для подтверждения оплаты используйте зарегистрированный адрес авторизованной учетной записи пользователя.Also, ensure that the address you use for contacting the user couldn't have been provided by a potential attacker. For example, for payment confirmations use the address on file for the authorized user's account.

Другие методики обеспечения безопасностиOther security practices

Разработчики также должны учитывать следующие методики обеспечения безопасности:Developers should also take note of the following security practices:

  • Разработчикам не следует использовать в надстройках Office элементы ActiveX, так как последние не поддерживают кроссплатформенные возможности платформы надстроек.Developers shouldn't use ActiveX controls in Office Add-ins as ActiveX controls don't support the cross-platform nature of the add-in platform.

  • Для надстроек содержимого и надстроек области задач применяются те же параметры SSL, которые используются по умолчанию в браузере и обеспечивают предоставление основной части содержимого исключительно с использованием SSL. Надстройки Outlook требуют предоставления всего содержимого с помощью SSL. Разработчикам необходимо указывать в элементе SourceLocation манифеста надстройки URL-адрес с использованием протокола HTTPS, чтобы определить расположение HTML-файла для надстройки.Content and task pane add-ins assume the same SSL settings that Internet Explorer uses by default, and allows most content to be delivered only by SSL. Outlook add-ins require all content to be delivered by SSL. Developers must specify in the SourceLocation element of the add-in manifest a URL that uses HTTPS, to identify the location of the HTML file for the add-in.

    Чтобы гарантировать, что надстройки не предоставляют содержимое с использованием HTTP, при тестировании надстроек разработчикам следует убедиться, что в разделе Свойства браузера на панели управления выбраны следующие параметры, а в тестовых сценариях отсутствуют предупреждения системы безопасности:To make sure add-ins aren't delivering content by using HTTP, when testing add-ins, developers should make sure the following settings are selected in Internet Explorer and no security warnings appear in their test scenarios:

    • Убедитесь что для параметра безопасности Отображение разнородного содержимого для зоны Интернет выбрано значение Предлагать. Для этого настройте параметры в разделе Свойства браузера следующим образом: на вкладке Безопасность выберите зону Интернет, нажмите кнопку Другой, прокрутите содержимое окна до элемента Отображение разнородного содержимого и выберите значение Предлагать, если оно еще не выбрано.Make sure the security setting, Display mixed content, for the Internet zone is set to Prompt. You can do that by selecting the following in Internet Explorer: on the Security tab of the Internet Options dialog box, select the Internet zone, select Custom level, scroll to look for Display mixed content, and select Prompt if it isn't already selected.

    • Убедитесь, что выбран параметр Предупреждать о переключении режима безопасности на вкладке Дополнительно диалогового окна Свойства браузера.Make sure Warn if Changing between Secure and not secure mode is selected in the Advanced tab of the Internet Options dialog box.

  • Чтобы убедиться, что надстройки не превышают допустимый уровень использования ЦП или памяти и не вызывают отказ в обслуживании на клиентском компьютере, платформа надстроек устанавливает пределы использования ресурсов. В рамках тестирования разработчикам следует убедиться, что надстройка соблюдает данные пределы.To make sure that add-ins don't use excessive CPU core or memory resources and cause any denial of service on a client computer, the add-in platform establishes resource usage limits. As part of testing, developers should verify whether an add-in performs within the resource usage limits.

  • Перед публикацией надстройки разработчикам следует убедиться, что любые личные сведения, указываемые ими в файлах надстройки, защищены.Before publishing an add-in, developers should make sure that any personal identifiable information that they expose in their add-in files is secure.

  • Разработчикам не следует внедрять ключи, которые они используют для доступа к сторонним API или службам (например, Bing, Google или Facebook) непосредственно в HTML-страницы своей надстройки. Вместо этого им следует создать настраиваемую веб-службу или хранить ключи в другом надежном веб-хранилище, к которому они затем смогут отправить вызов, чтобы передать значение ключа в надстройку.Developers shouldn't embed keys that they use to access third-party APIs or services (such as Bing, Google, or Facebook) directly in the HTML pages of their add-in. Instead, they should create a custom web service or store the keys in some other form of secure web storage that they can then call to pass the key value to their add-in.

  • При отправке надстройки в AppSource разработчикам следует:Developers should do the following when submitting an add-in to AppSource:

    • разместить отправляемую надстройку на веб-сервере, поддерживающем SSL;Host the add-in they are submitting on a web server that supports SSL.
    • создать заявление, прописывающее соответствующую требованиям политику конфиденциальности;Produce a statement outlining a compliant privacy policy.
    • подготовиться к подписанию контрактного соглашения при отправке надстройки.Be ready to sign a contractual agreement upon submitting the add-in.

Помимо соблюдения правил использования ресурсов разработчики надстроек Outlook должны проверять, что их надстройки соблюдают ограничения по заданию правил активации и использованию API JavaScript. Дополнительные сведения см. в статье Ограничения для активации и API JavaScript для надстроек Outlook.Other than resource usage rules, developers for Outlook add-ins should also make sure their add-ins observe limits for specifying activation rules and using the JavaScript API. For more information, see Limits for activation and JavaScript API for Outlook add-ins.

Полномочия ИТ-администраторовIT administrators' control

В корпоративной среде ИТ-администраторы обладают высшими полномочиями в том, что касается предоставления или запрета доступа к AppSource и каким-либо частным каталогам.In a corporate setting, IT administrators have ultimate authority over enabling or disabling access to AppSource and any private catalogs.

Управление параметрами Office и их внедрение выполняется с помощью параметров групповой политики.The management and enforcement of Office settings is done with group policy settings. Указанные ниже параметры настраиваются с помощью средства развертывания Office совместно с центром развертывания Office.These are configurable through the Office Deployment Tool, in conjunction with the Office Customization Tool.

Имя параметраSetting name ОписаниеDescription
Разрешить небезопасные веб-надстройки и каталогиAllow Unsecure web add-ins and Catalogs Разрешает пользователям запускать небезопасные надстройки. Это надстройки с расположениями на веб-страницах или в каталоге без SSL-шифрования (https://), не находящиеся в зонах Интернета пользователей.Allows users to run non-secure add-ins, which are add-ins that have webpage or catalog locations that are not SSL-secured (https://) and are not in users' Internet zones.
Блокировать веб-надстройкиBlock Web Add-ins Позволяет запрещать пользователям применение веб-надстроек.Allows you to prevent users from using web add-ins.
Заблокировать Магазин OfficeBlock the Office Store Позволяет запрещать пользователям применение или вставку веб-настроек из Магазина Office.Allows you to prevent users from using or inserting web add-ins that come from the Office Store.

Важно!

Если в рабочих группах используется несколько выпусков Office, для каждого выпуска нужно настроить параметры групповой политики.If your working groups are using multiple releases of Office, group policy settings must be configured for each release. Подробные сведения о параметрах групповой политики для Office 2013 см. в разделе Использование групповой политики для управления возможностью установки и использования пользователями приложений для Office статьи Обзор приложений для Office 2013Please refer to the Using Group Policy to manage how users can install and use apps for Office of the Overview of apps for Office 2013 article for details on group policy settings for Office 2013.

См. такжеSee also