Spec-Zone.ru › Angular.js 1.7

Улучшить эту документацию Просмотреть исходный код $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.resourceUrlWhitelist и $sceDelegateProvider.resourceUrlBlacklist

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

$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.resourceUrlWhitelist и $sceDelegateProvider.resourceUrlBlacklist, принимает этот ресурс.

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

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

    Параметры

    Параметр Тип Подробности
    type string

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

    maybeTrusted *

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

    Возвращает

    *

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

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

Spec-Zone.ru

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