Spec-Zone.ru › Angular.js 1.6

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

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

Обзор

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

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

Для получения общей информации об этой службе в 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.resourceUrlWhitelist([
    // Allow same origin resource loads.
    'self',
    // Allow loading from our assets domain.  Notice the difference between * and **.
    'http://srv*.assets.example.com/**'
  ]);

  // The blacklist overrides the whitelist so the open redirect here is blocked.
  $sceDelegateProvider.resourceUrlBlacklist([
    'http://myapp.example.com/clickThru**'
  ]);
});

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

Методы

  • resourceUrlWhitelist([whitelist]);

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

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

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

    Параметры

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

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

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

    Array

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

  • resourceUrlBlacklist([blacklist]);

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

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

    Параметры

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

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

    Ссылка на эту ссылку для описания разрешенных элементов в этом массиве.

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

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

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

    Array

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

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

Spec-Zone.ru

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