ScriptPolicy
in package
外部 script の読み込みを許可するホスト whitelist を表す値オブジェクト。
config(1行1ホスト、書式は iframe と同じ host[/pathPrefix])を正規化して保持し、
script の src がいずれかの許可ホストに一致するかを判定する。判定軸は src の1点だけで、
iframe の allow / sandbox に相当する capability の概念は持たない
(script にはサンドボックス指定が存在せず、読み込めた時点で全権限のため)。
インライン JS は許可ホストの有無に関わらず常に落ちる。これは本クラスではなく PurifierFactory が script を子要素の持てない content model で宣言することで構造的に保証する。
Table of Contents
Constants
- CACHE_VERSION = 1
- キャッシュ世代。属性定義・ポリシー解釈の実装を変更したときに増やすと HTML.DefinitionRev が変わり、HTMLPurifier のキャッシュが再生成される。
Properties
- $hosts : array<int, string>
- 正規化済みの許可ホスト(`host[/pathPrefix]`)。
Methods
- __construct() : mixed
- allows() : bool
- src が許可ホストのいずれかに一致するか。
- fromConfig() : self
- config の `html_purifier_script_allowed_hosts` からポリシーを生成する。
- fromLines() : self
- 1行1ホストの定義からポリシーを生成する。
- hosts() : array<int, string>
- 許可ホスト名の一覧。
- isEnabled() : bool
- 外部 script の読み込みを許可する(ホストが1つ以上ある)か。
- revision() : int
- ポリシー内容から決定的に算出する整数リビジョン。 HTML.DefinitionRev に用い、ポリシー変更時にキャッシュを再生成させる。
Constants
CACHE_VERSION
キャッシュ世代。属性定義・ポリシー解釈の実装を変更したときに増やすと HTML.DefinitionRev が変わり、HTMLPurifier のキャッシュが再生成される。
private
mixed
CACHE_VERSION
= 1
Properties
$hosts
正規化済みの許可ホスト(`host[/pathPrefix]`)。
private
array<int, string>
$hosts
Methods
__construct()
public
__construct(array<int, string> $hosts) : mixed
Parameters
- $hosts : array<int, string>
allows()
src が許可ホストのいずれかに一致するか。
public
allows(string $src) : bool
Parameters
- $src : string
-
script の src
Return values
boolfromConfig()
config の `html_purifier_script_allowed_hosts` からポリシーを生成する。
public
static fromConfig() : self
extends_html_purifier_script_allowed_hosts(拡張ポイント)の内容をコア既定値の
後ろに連結する。config.system.yaml でコア既定値のキー自体を上書きするとコア既定値ごと
失われるため、追加だけしたい制作者はこちらのキーを使う(同じ書式)。
Return values
selffromLines()
1行1ホストの定義からポリシーを生成する。
public
static fromLines(array<string|int, mixed> $lines) : self
Parameters
- $lines : array<string|int, mixed>
Return values
selfhosts()
許可ホスト名の一覧。
public
hosts() : array<int, string>
Return values
array<int, string>isEnabled()
外部 script の読み込みを許可する(ホストが1つ以上ある)か。
public
isEnabled() : bool
Return values
boolrevision()
ポリシー内容から決定的に算出する整数リビジョン。 HTML.DefinitionRev に用い、ポリシー変更時にキャッシュを再生成させる。
public
revision() : int