Spec-Zone.ru › Angular.js 1.8

Улучшить эту документацию Просмотреть исходный код $sceDelegateProvider

  1. $sceDelegate
  2. поставщик в модуле ng

Обзор

Позволяет разработчикам настроить сервис $sceDelegate, используемый в качестве делегата для жесткого контекстного экранирования (SCE).

Позволяет получить/установить значения trustedResourceUrlList и bannedResourceUrlList, используемые для обеспечения безопасности URL-адресов, используемых для получения шаблонов AngularJS и других URL-адресов для выполнения скриптов (все места, использующие контекст $sce.RESOURCE_URL). См. $sceDelegateProvider.trustedResourceUrlList и $sceDelegateProvider.bannedResourceUrlList.

Для получения общей информации об этом сервисе в AngularJS, ознакомьтесь со страницей жесткого контекстного экранирования (SCE).

Пример: Рассмотрим следующий случай.

  • Ваш приложение размещено по адресу http://myapp.example.com/
  • но некоторые ваши шаблоны размещены на других доменах, которые вы контролируете, таких как http://srv01.assets.example.com/, http://srv02.assets.example.com/, и т. д.
  • и у вас есть открытый редирект по адресу http://myapp.example.com/clickThru?....

Вот как может выглядеть безопасная конфигурация для этого сценария:

angular.module('myApp', []).config(function($sceDelegateProvider) {
  $sceDelegateProvider.trustedResourceUrlList([
    // Allow same origin resource loads.
    'self',
    // Allow loading from our assets domain.  Notice the difference between * and **.
    'http://srv*.assets.example.com/**'
  ]);

  // The banned resource URL list overrides the trusted resource URL list so the open redirect
  // here is blocked.
  $sceDelegateProvider.bannedResourceUrlList([
    'http://myapp.example.com/clickThru**'
  ]);
});

Обратите внимание, что пустой список URL-адресов доверенных ресурсов заблокирует загрузку каждого URL-адреса ресурса и потребует от вас вручную отметить каждый как доверенный с помощью $sce.trustAsResourceUrl. Однако шаблоны, запрошенные $templateRequest, которые присутствуют в $templateCache, этому проверке не подвергаются. Если у вас есть механизм заполнения ваших шаблонов в этом кэше на этапе конфигурации, рекомендуется удалить 'self' из списка доверенных URL-адресов ресурсов. Это помогает смягчить влияние определенных типов проблем, таких как, например, атаки с использованием ng-includes.

Методы

  • trustedResourceUrlList([trustedResourceUrlList]);

    Устанавливает/получает список доверенных URL-адресов ресурсов.

    Значение по умолчанию, если явно не был установлен список доверенных URL-адресов, равно ['self'], позволяя запросы ресурсов только из одного источника.

    Примечание: значение по умолчанию trustedResourceUrlList 'self' не рекомендуется, если ваше приложение использует один и тот же источник с другими приложениями! Рекомендуется ограничить его только каталогом вашего приложения.

    Параметры

    Параметр Тип Описание
    trustedResourceUrlList
    (необязательно)
    Array

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

    Возвращаемое значение

    Array

    Текущий установленный массив доверенных URL-адресов ресурсов.

  • resourceUrlWhitelist();

    Устаревший: (с версии 1.8.1)

    Этот метод устарел. Используйте trustedResourceUrlList вместо него.

  • bannedResourceUrlList([bannedResourceUrlList]);

    Устанавливает/получает список bannedResourceUrlList доверенных URL-адресов ресурсов.

    Значение по умолчанию, если явно не был установлен список доверенных URL-адресов, — пустой массив (т. е. список bannedResourceUrlList отсутствует).

    Параметры

    Параметр Тип Описание
    bannedResourceUrlList
    (необязательно)
    Array

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

    Подробное описание допустимых элементов в этом массиве см. здесь.

    Типичное использование списка bannedResourceUrlList — блокировка открытых редиректов, предоставляемых вашим доменом, так как в противном случае они считались бы доверенными, но на самом деле возвращают содержимое из перенаправляемого домена.

    Наконец, список запрещенных URL-адресов ресурсов переопределяет список доверенных URL-адресов ресурсов и имеет решающее значение.

    Возвращаемое значение

    Array

    Текущий установленный массив bannedResourceUrlList.

  • resourceUrlBlacklist();

    Устаревший: (с версии 1.8.1)

    Этот метод устарел. Используйте bannedResourceUrlList вместо него.

© 2010–2020 Google, Inc.
Licensed under the Creative Commons Attribution License 3.0.
https://code.angularjs.org/1.8.2/docs/api/ng/provider/$sceDelegateProvider

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API