メニューを切り替える
個人設定を切り替える
ログインしていません
編集を行うと、IPアドレスが公開されます。

IframeタグをMediaWikiで使う

提供:Euro Truck Simulator 2 FanWiki

MediaWikiですが、デフォルトではIframeタグは使用が禁止されていてユーザーがiframeタグを入力しても除去される仕様でした。これはIframeで埋め込んだコンテンツが著作権の侵害をする可能性があることと、外部サイトを埋め込むことによるセキュリティ上のリスクによるものでした。このIframeを許可されたドメインのみ埋め込むことを可能にする方法がありましたので備忘録として残しておきます。

インストール

  • MediaWikiサイトからGitプロジェクトページへ移動してZipファイルをダウンロードして、ファイルをextensions/フォルダー内のIframeという名前のディレクトリ内に配置します。
  • 以下のコードを LocalSettings.php ファイルの末尾に追加します:

wfLoadExtension( 'Iframe' );

設定

Iframeタグを使用するためのオプションのパラメータがいくつかあります。 LocalSettings.phpで設定することができます。

初期化

まずは、設定のための変数を初期化します。
$wgIframe = array();

許可ドメインの設定

デフォルトでは、全てのドメインが拒否されています。そのためLocalSettings.phpで一つづつ許可するドメインを記述して指定する必要があります。
$wgIframe['server']['local'] = [ 'scheme' => 'https', 'domain' => 'your-domein.com' ];
これは、localドメインに対してIframeを許可する記述です。
$wgIframe['server']['steam'] = [ 'scheme' => 'https', 'domain' => 'steampowered.com' ];
これは、steamというキーに対して、steampowered.comというドメインを許可するという記述です。

Iframeタグの記述例

<iframe key="steam" level="store" path="widget/XXXXXX/" frameborder="0" width="640" height="190"></iframe>

通常のIframeタグの記述ルールとは変わっていることに注目してください。 key:LocalSettings.phpに記述したkey="steam"を明記します。 level:これは表示したいWEBページにサブドメインがあるときに記述します。デフォルトは空です。
level="store"は、LocalSettings.phpで設定したsteampowered.comのサブドメインを指定しています。
path:これはURLのドメインより後ろの部分

https://store.steampowered.com/widget/XXXXXX/

URLのwidget/XXXXXX/を指定します。これは、おそらくですが少しでもセキュリティリスクを減らすために絶対パス(完全なURLの)ではなく相対パス(ドメインを除去したURL)で記述する措置にしたのだと考えています。
注意することは、

<iframe src="https://your-domein/widget/XXXXXX/" frameborder="0" width="640" height="190"></iframe>

という外部サイトのIframeコードを入手したとしたら、src="https://your-domein/widget/XXXXXX/"は除去してかつ、ドメインより後ろの相対パスはpathに記述する必要があるということです。

動作環境

参考資料

Cookieは私達のサービスを提供するのに役立ちます。このサービスを使用することにより、お客様はCookieの使用に同意するものとします。