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.
Исключения
Примеры
В приведенном ниже коде создаётся политика с именем "myEscapePolicy" с определённой функцией для createHTML(), которая очищает HTML.
const escapeHTMLPolicy = trustedTypes.createPolicy("myEscapePolicy", {
createHTML: (string) => string.replace(/</g, "<"),
});
Создание политики по умолчанию
На сайте, где 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)}`;
},
});
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 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