Spec-Zone.ru › Angular.js 1.7

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

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

Обзор

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

Поставщик $sceDelegateProvider позволяет получить/установить списки разрешенных и запрещенных 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.7.8/docs/api/ng/provider/$sceDelegateProvider

Spec-Zone.ru

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