Spec-Zone.ru › Web APIs

TrustedTypePolicyFactory: метод createPolicy()

Ограниченная доступность

Эта функция не относится к Baseline, так как не работает в некоторых из наиболее широко используемых браузеров.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Примечание: Эта функция доступна в Web Workers.

Метод createPolicy() интерфейса TrustedTypePolicyFactory создаёт объект TrustedTypePolicy, который реализует правила, переданные в виде policyOptions.

Политика по умолчанию

В Chrome политика с именем "default" создаёт специальную политику, которая будет использоваться, если в токен ввода передаётся строка (а не объект Trusted Type). Это может быть использовано в переходный период при переходе от приложения, которое вставляло строки в токены ввода.

Примечание: Указанное выше поведение ещё не окончательно определено в спецификации и может измениться в будущем.

Предупреждение: Слишком либеральная политика по умолчанию может свести на нет цель использования Trusted Types, и поэтому она должна быть определена со строгими правилами, чтобы гарантировать, что она не может быть использована для запуска опасного кода.

Синтаксис

createPolicy(policyName, policyOptions)

Параметры

policyName

Строка с именем политики.

policyOptions Необязательно

Пользовательские функции для преобразования строк в надёжные значения.

createHTML(input[,args])

Функция обратного вызова в виде строки, содержащей код, который нужно выполнить при создании объекта TrustedHTML.

createScript(input[,args])

Функция обратного вызова в виде строки, содержащей код, который нужно выполнить при создании объекта TrustedScript.

createScriptURL(input[,args])

Функция обратного вызова в виде строки, содержащей код, который нужно выполнить при создании объекта TrustedScriptURL.

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

Объект TrustedTypePolicy.

Исключения

TypeError

Выбрасывается, если имена политик ограничены директивой Content Security Policy trusted-types и это имя не находится в списке разрешённых.

TypeError

Выбрасывается, если имя является дубликатом, и директива Content Security Policy trusted-types не использует allow-duplicates.

Примеры

В приведенном ниже коде создаётся политика с именем "myEscapePolicy" с определённой функцией для createHTML(), которая очищает HTML.

const escapeHTMLPolicy = trustedTypes.createPolicy("myEscapePolicy", {
  createHTML: (string) => string.replace(/</g, "&lt;"),
});

Создание политики по умолчанию

На сайте, где Trusted Types применяются через Content Security Policy с директивой require-trusted-types-for, установленной в script, любой скрипт вставки, принимающий скрипт, ожидает объект Trusted Type. В случае, если вместо этого вставляется строка, будет использоваться следующая политика по умолчанию.

Политика регистрирует сообщение в консоли, чтобы напомнить разработчику о необходимости переписать эту часть приложения для использования объекта Trusted Type. Она также добавляет сведения об использовании политики по умолчанию, типе и токенах ввода в возвращаемое значение.

trustedTypes.createPolicy("default", {
  createScriptURL: (s, type, sink) => {
    console.log("Please refactor.");
    return `${s}?default-policy-used&type=${encodeURIComponent(
      type,
    )}&sink=${encodeURIComponent(sink)}`;
  },
});

Спецификации

Спецификация
Trusted Types
# dom-trustedtypepolicyfactory-createpolicy

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari на iOS Samsung Internet WebView Android
createPolicy 83 83 Нет 69 Нет 83 Нет 59 Нет 13.0 83

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/TrustedTypePolicyFactory/createPolicy

Spec-Zone.ru

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