やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

HTML文書をつくる19 埋め込みコンテンツ(iframe, object, param, embed)

 外部サイトや外部バイナリファイルを埋め込んで表示する。

要素一覧

要素 概要
<iframe>
<embed> 埋め込み外部コンテンツ要素
<object> 外部リソース。PDFやFLASHの埋め込み。
<param> <object>の引数

<iframe>

 別のHTMLを表示する。

<iframe src="https://www.google.co.jp/"></iframe>

 あれ、表示されないじゃん。ググってみるとサーバ側の設定で、iframeによるページ表示を禁止するよう設定しているようだ。X-Frame-Optionsによって。

X-Frame-Options 内容
Deny ドメインで禁止
SAMEORIGIN 同一ドメイン内のみ許可
ALLOW-FROM uri 指定したドメインに限り許可

 提供するサーバ側はセキュリティ対策でこれを設定するらしい。クリックジャッキングというサイバー攻撃に対する処置だそうだ。ユーザに見えないよう偽装したリンクやボタンを設置し、クリックさせるものらしい。それにより意図しない商品購入や送金をさせられたり、カメラやマイクを起動させられてプライバシー侵害されたり、なりすまされて犯罪予告させられたりするなどが起こりうる。

 これって事実上、<iframe>タグは使えないのでは? むしろ使えちゃったサイトはセキュリティが弱すぎて危険だと判明するだけでは?

<embed>

 外部コンテンツを埋め込む。

<embed src="some.pdf" type="application/pdf"  width="100%" height="100%"></embed>

<object>

 外部コンテンツを埋め込む。

<object data="some.pdf" type="application/pdf"  width="100%" height="100%"></object>

<param>

 <object>の引数を定義する。

<object data="some.pdf" type="application/pdf"  width="100%" height="100%">
<param name="キー" value="値">
</object>

所感

 そもそもHTML標準外のコンテンツを拡張によって表示することは非推奨である。よってこれらのタグを使うこと自体がよくないこと、らしい。かつてFLASHなどを埋め込んでいたときは使われていたのだろうなぁ(遠い目)

対象環境

$ uname -a
Linux raspberrypi 5.10.63-v7l+ #1496 SMP Wed Dec 1 15:58:56 GMT 2021 armv7l GNU/Linux