「IframeタグをMediaWikiで使う」の版間の差分
ページの作成:「MediaWikiですが、デフォルトではIframeタグは使用が禁止されていてユーザーがiframeタグを入力しても除去される仕様でした。これはIframeで埋め込んだコンテンツが著作権の侵害をする可能性があることと、外部サイトを埋め込むことによるセキュリティ上のリスクによるものでした。このIframeを許可されたドメインのみ埋め込む可能する方法がありま…」 |
detailsタグとsummaryタグの挿入 |
||
(同じ利用者による、間の2版が非表示) | |||
1行目: | 1行目: | ||
MediaWikiですが、デフォルトではIframeタグは使用が禁止されていてユーザーがiframeタグを入力しても除去される仕様でした。これはIframeで埋め込んだコンテンツが著作権の侵害をする可能性があることと、外部サイトを埋め込むことによるセキュリティ上のリスクによるものでした。このIframeを許可されたドメインのみ埋め込むことを可能にする方法がありましたので備忘録として残しておきます。 | |||
== インストール == | <details open> | ||
<summary>== インストール ==</summary> | |||
*[https://www.mediawiki.org/wiki/Extension:Iframe MediaWikiサイト]からGitプロジェクトページへ移動してZipファイルをダウンロードして、ファイルをextensions/フォルダー内のIframeという名前のディレクトリ内に配置します。 | *[https://www.mediawiki.org/wiki/Extension:Iframe MediaWikiサイト]からGitプロジェクトページへ移動してZipファイルをダウンロードして、ファイルをextensions/フォルダー内のIframeという名前のディレクトリ内に配置します。 | ||
*以下のコードを LocalSettings.php ファイルの末尾に追加します: | *以下のコードを LocalSettings.php ファイルの末尾に追加します: | ||
<code>wfLoadExtension( 'Iframe' );</code> | <code>wfLoadExtension( 'Iframe' );</code> | ||
</details> | |||
== 設定 == | <details open> | ||
<summary>== 設定 ==</summary> | |||
Iframeタグを使用するためのオプションのパラメータがいくつかあります。 LocalSettings.phpで設定することができます。 | Iframeタグを使用するためのオプションのパラメータがいくつかあります。 LocalSettings.phpで設定することができます。 | ||
=== 初期化 === | === 初期化 === | ||
まずは、設定のための変数を初期化します。<br> | |||
<code> | <code> | ||
$wgIframe = array(); | $wgIframe = array(); | ||
38行目: | 41行目: | ||
</pre> | </pre> | ||
という外部サイトのIframeコードを入手したとしたら、<code>src="https://your-domein/widget/XXXXXX/"</code>は除去してかつ、ドメインより後ろの相対パスはpathに記述する必要があるということです。 | という外部サイトのIframeコードを入手したとしたら、<code>src="https://your-domein/widget/XXXXXX/"</code>は除去してかつ、ドメインより後ろの相対パスはpathに記述する必要があるということです。 | ||
</details> | |||
== 動作環境 == | <details open> | ||
<summary>== 動作環境 ==</summary> | |||
* [https://www.mediawiki.org/wiki/Download/ja MediaWiki ver 1.40.1] | * [https://www.mediawiki.org/wiki/Download/ja MediaWiki ver 1.40.1] | ||
* [https://www.mediawiki.org/wiki/Extension:Iframe Extension:Iframe] | * [https://www.mediawiki.org/wiki/Extension:Iframe Extension:Iframe] | ||
* [https://www.mediawiki.org/wiki/Skin:Vector/2022/ja Skin:ベクター/2022年版] | * [https://www.mediawiki.org/wiki/Skin:Vector/2022/ja Skin:ベクター/2022年版] | ||
</details> | |||
== 参考資料 == | <details open> | ||
<summary>== 参考資料 ==</summary> | |||
* [https://www.mediawiki.org/wiki/Extension:Iframe Extension:Iframe] | * [https://www.mediawiki.org/wiki/Extension:Iframe Extension:Iframe] | ||
</details> | |||
[[Category:MediaWikiについての備忘録]] | [[Category:MediaWikiについての備忘録]] |
2024年9月29日 (日) 12:57時点における最新版
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に記述する必要があるということです。