← Page-Type Lab back
joomla · template/module injection · CSP allowlist (measured: joomla.org)

Joomla — 条件付き対応

Joomla を再現。仮説: セルフホストなのでテンプレートや Custom HTML モジュール ($doc->addScript()) から si.js を注入できる、joomla.org 本体は実測で CSP allowlist を運用しており、script-src に widget origin を 追加しないと si.js が Refused to load される。つまり注入面はあるが allowlist への origin 追加が前提条件

テンプレート/モジュール注入面

このページの <head> に置いた si.js が テンプレート / Custom HTML モジュール注入相当。ただし下の CSP で 現状はブロックされる。

低コントラストのサンプル文(コントラスト機能の検証用)。

CSP allowlist (meta) で再現

このページは script-src 'self' のみを許可する meta CSP を宣言。 widget-dev2 origin が無いので si.js はブロックされる。実運用では グローバル設定の Content-Security-Policy に widget origin を追加して解決する。

一次証拠の取り方

一次証拠は DevTools Console の "Refused to load the script https://widget-dev2.sitedrive.ai/si.js ... Content Security Policy"securitypolicyviolation イベントは Chrome が listener 登録前に fire するため不採用。ここでは widget が mount しない (host 不在) ことから ブロックを間接判定する。