SafeIframeRegexp
in package
FinalYes
iframe の src を許可ホストに限定するための PCRE を生成・判定する。
HTMLPurifier の URI.SafeIframeRegexp はホスト文字列をそのまま正規表現に流すため、 preg_quote によるメタ文字の安全化、プロトコル相対 (//) / http / https の吸収、 ポート以外での区切り偽装(userinfo @ など)の排除を一箇所に集約する。
build() と matches() が同一の正規表現ロジックを共有することで、 SafeIframe フィルタの判定(URI.SafeIframeRegexp)と post-transform でのホスト解決(IframePolicyTransform)の結果が一致することを保証する。
Table of Contents
Methods
- build() : string|null
- 許可ホストの配列から URI.SafeIframeRegexp 用の PCRE を生成する。
- matches() : bool
- 単一ホストに対して URL がマッチするか判定する。
- hostPattern() : string|null
- ホスト名を正規表現の部分パターンに変換する。
Methods
build()
許可ホストの配列から URI.SafeIframeRegexp 用の PCRE を生成する。
public
static build(array<string|int, string> $hosts) : string|null
Parameters
- $hosts : array<string|int, string>
-
許可ホスト名の配列
Return values
string|null —有効なホストが無い場合は null(iframe を許可しないシグナル)
matches()
単一ホストに対して URL がマッチするか判定する。
public
static matches(string $url, string $host) : bool
build() と同一の正規表現を用いるため、SafeIframe フィルタの通過可否と一致する。
Parameters
- $url : string
-
判定対象の URL(iframe の src)
- $host : string
-
許可ホスト名
Return values
boolhostPattern()
ホスト名を正規表現の部分パターンに変換する。
private
static hostPattern(string $host) : string|null
Parameters
- $host : string
Return values
string|null —空文字なら null