Spec-Zone.ru › Angular.js 1.8

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

  1. $sceDelegateProvider
  2. сервис в модуле ng

Обзор

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

Для обзора этого сервиса и функциональности, которую он предоставляет в AngularJS, см. главную страницу для SCE. Текущая страница предназначена для разработчиков, которым нужно изменить работу SCE в своём приложении, что обычно не требуется.

AngularJS сильно полагается на контекстную экранировку для обеспечения безопасности привязок: отключение или изменение этого может привести к уязвимостям межсайтового скриптинга (XSS). Для владельцев библиотек изменения в этом сервисе также повлияют на пользователей, поэтому будьте предельно осторожны и документируйте свои изменения.

Обычно вы настраиваете или переопределяете $sceDelegate, а не $sce сервис, чтобы настроить способ работы строгой контекстной экранировки в AngularJS. Это потому, что, хотя $sce предоставляет множество сокращённых методов и т. д., вам действительно нужно переопределить только 3 основных функции (trustAs, getTrusted и valueOf), чтобы изменить способ работы, так как $sce делегирует эти операции $sceDelegate.

Для настройки этого сервиса обратитесь к $sceDelegateProvider.

Доступный по умолчанию экземпляр $sceDelegate должен работать без проблем. Хотя вы можете полностью переопределить его, чтобы изменить поведение $sce, в типичном случае вы настраиваете $sceDelegateProvider вместо этого, установив свои собственные доверенные и запрещённые списки ресурсов для доверия к URL-адресам, используемым для загрузки ресурсов AngularJS, таких как шаблоны. Обратитесь к $sceDelegateProvider.trustedResourceUrlList и $sceDelegateProvider.bannedResourceUrlList.

Использование

$sceDelegate();

Методы

  • trustAs(type, value);

    Возвращает доверенное представление параметра для указанного контекста. Это доверенное значение в дальнейшем будет использоваться напрямую, без проверки безопасности, привязки или директивами, требующими такого контекста безопасности. Например, помечая строку как доверенную для контекста $sce.HTML, вы полностью обойдёте потенциальный $sanitize вызов в соответствующих $sce.HTML привязках или директивах, таких как ng-bind-html. Обратите внимание, что в большинстве случаев вам не нужно вызывать эту функцию: если у вас загружен санитайзер, передача самого значения отобразит весь HTML, который не представляет угрозы безопасности.

    См. getTrusted для функции, которая будет использовать эти доверенные значения, и $sce для общей информации о строгой контекстной экранировке.

    Параметры

    Параметр Тип Описание
    type string

    Контекст, в котором это значение безопасно для использования, например, $sce.URL, $sce.RESOURCE_URL, $sce.HTML, $sce.JS или $sce.CSS.

    value *

    Значение, которое должно считаться доверенным.

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

    *

    Доверенное представление значения, которое может быть использовано в данном контексте.

  • valueOf(value);

    Если переданный параметр был возвращён предыдущим вызовом $sceDelegate.trustAs, возвращает значение, которое было передано в $sceDelegate.trustAs.

    Если переданный параметр не является значением, возвращённым $sceDelegate.trustAs, он должен быть возвращён как есть.

    Параметры

    Параметр Тип Описание
    value *

    Результат предыдущего вызова $sceDelegate.trustAs или что-либо другое.

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

    *

    Исходное value, переданное $sceDelegate.trustAs, если value является результатом такого вызова. В противном случае, возвращает value без изменений.

  • getTrusted(type, maybeTrusted);

    Учитывая объект и контекст безопасности, для присвоения ему возвращает значение, безопасное для использования в этом контексте, которое было представлено параметром. Для этого функция либо распаковывает безопасный тип, который ей был передан (например, результат $sceDelegate.trustAs), либо пытается отформатировать переданное значение, в зависимости от контекста и наличия санитайзера.

    Контексты, которые могут быть отформатированы, — это $sce.MEDIA_URL, $sce.URL и $sce.HTML. Первые два доступны по умолчанию, а третий зависит от сервиса $sanitize (который может быть загружен через модуль ngSanitize). Кроме того, для контекста $sce.RESOURCE_URL может быть принята обычная строка, если политика ресурса URL, определённая $sceDelegateProvider.trustedResourceUrlList и $sceDelegateProvider.bannedResourceUrlList, принимает этот ресурс.

    Функция выбросит исключение, если безопасный тип не подходит для этого контекста или если значение не может быть принято в контексте (что может быть вызвано отсутствием санитайзера или нераспознанием значения как безопасного).

    Отключение автоматической экранировки чрезвычайно опасно; это обычно создаёт уязвимость межсайтового скриптинга (XSS) в вашем приложении.

    Параметры

    Параметр Тип Описание
    type string

    Контекст, в котором это значение будет использоваться (например, $sce.HTML).

    maybeTrusted *

    Результат предыдущего вызова $sceDelegate.trustAs или что-либо ещё (что не будет считаться доверенным).

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

    *

    Версия значения, безопасная для использования в заданном контексте, или выброс исключения, если это невозможно.

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

Spec-Zone.ru

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