TrustedTypePolicyFactory: createPolicy() メソッド
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
メモ: この機能はウェブワーカー内で利用可能です。
createPolicy()
は TrustedTypePolicyFactory
インターフェイスのメソッドで、 policyOptions
として渡されたルールを実装した TrustedTypePolicy
オブジェクトを作成します。
構文
createPolicy(policyName, policyOptions)
引数
policyName
-
文字列で、このポリシーの名前です。
policyOptions
省略可-
文字列を信頼できる値に変換するためのユーザー定義関数です。
createHTML(input[,args])
-
TrustedHTML
オブジェクトを作成する際に実行するコードが含まれている、文字列の形のコールバック関数。 createScript(input[,args])
-
TrustedScript
オブジェクトを作成する際に実行するコードが含まれている、文字列の形のコールバック関数。 createScriptURL(input[,args])
-
TrustedScriptURL
オブジェクトを作成する際に実行するコードが含まれている、文字列の形のコールバック関数。
返値
TrustedTypePolicy
オブジェクトです。
例外
TypeError
-
ポリシー名がコンテンツセキュリティポリシーの
trusted-types
ディレクティブによって制限されており、この名前が許可リストに含まれていない場合に発生します。 TypeError
-
名前が重複しており、コンテンツセキュリティポリシーの trusted-types ディレクティブが
allow-duplicates
を使用しない場合に発生します。
例
>HTML シンクのポリシーを作成
下記コードは、"myEscapePolicy"
という名前のポリシーを作成し、HTML を無害化する関数 createHTML()
を定義します。
const escapeHTMLPolicy = trustedTypes.createPolicy("myEscapePolicy", {
createHTML: (string) => string.replace(/</g, "<"),
});
既定のポリシーの作成
信頼型が、require-trusted-types-for
ディレクティブが script
に設定するコンテンツセキュリティポリシーによって強制されているサイトでは、スクリプトを受け入れるあらゆる注入スクリプトは、信頼型オブジェクトを期待します。代わりに文字列が挿入された場合、既定のポリシーが使用されます。
既定のポリシーは、コンソールにメッセージをログ出力し、開発者にアプリケーションのこの部分をリファクタリングして信頼型オブジェクトを使用するよう促します。同時に、返される値に、既定のポリシー、型、および注入先の使用に関する詳細情報を付加します。
trustedTypes.createPolicy("default", {
createScriptURL(s, type, sink) {
console.log("Please refactor.");
return `${s}?default-policy-used&type=${encodeURIComponent(
type,
)}&sink=${encodeURIComponent(sink)}`;
},
});
仕様書
Specification |
---|
Trusted Types> # dom-trustedtypepolicyfactory-createpolicy> |
ブラウザーの互換性
Loading…