このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

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 オブジェクトを作成します。

構文

js
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() を定義します。

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

既定のポリシーの作成

信頼型が、require-trusted-types-for ディレクティブが script に設定するコンテンツセキュリティポリシーによって強制されているサイトでは、スクリプトを受け入れるあらゆる注入スクリプトは、信頼型オブジェクトを期待します。代わりに文字列が挿入された場合、既定のポリシーが使用されます。

既定のポリシーは、コンソールにメッセージをログ出力し、開発者にアプリケーションのこの部分をリファクタリングして信頼型オブジェクトを使用するよう促します。同時に、返される値に、既定のポリシー、型、および注入先の使用に関する詳細情報を付加します。

js
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

ブラウザーの互換性