From d18c17bea3e60375b0be086e0164d6918530604e Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Fri, 24 Sep 2021 23:03:22 +0900 Subject: Web/HTTP/Headers/X-Frame-Options の変換準備 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ja/web/http/headers/x-frame-options/index.html | 156 --------------------- files/ja/web/http/headers/x-frame-options/index.md | 156 +++++++++++++++++++++ 2 files changed, 156 insertions(+), 156 deletions(-) delete mode 100644 files/ja/web/http/headers/x-frame-options/index.html create mode 100644 files/ja/web/http/headers/x-frame-options/index.md (limited to 'files/ja/web') diff --git a/files/ja/web/http/headers/x-frame-options/index.html b/files/ja/web/http/headers/x-frame-options/index.html deleted file mode 100644 index 2f334140f9..0000000000 --- a/files/ja/web/http/headers/x-frame-options/index.html +++ /dev/null @@ -1,156 +0,0 @@ ---- -title: X-Frame-Options -slug: Web/HTTP/Headers/X-Frame-Options -tags: - - Apache - - Gecko - - HAProxy - - HTTP - - Security - - nginx - - セキュリティ - - レスポンスヘッダー -translation_of: Web/HTTP/Headers/X-Frame-Options ---- -
{{HTTPSidebar}}
- -

X-Frame-OptionsHTTP のレスポンスヘッダーで、ブラウザーがページを {{HTMLElement("frame")}}, {{HTMLElement("iframe")}}, {{HTMLElement("embed")}}, {{HTMLElement("object")}} の中に表示することを許可するかどうかを示すために使用されます。サイトはコンテンツが他のサイトに埋め込まれないよう保証することで、{{interwiki("wikipedia", "クリックジャッキング")}}攻撃を防ぐために使用することができます。

- -

強化されたセキュリティは、ユーザーが X-Frame-Options に対応したブラウザーを使用して文書にアクセスした場合のみ提供されます。

- -
-

Note: {{HTTPHeader("Content-Security-Policy")}} ヘッダーには frame-ancestors ディレクティブがあり、対応しているブラウザーにおいてこのヘッダーを置き換えています。

-
- - - - - - - - - - - - -
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
- -

構文

- -

X-Frame-Options には二つの有効なディレクティブがあります。

- -
X-Frame-Options: DENY
-X-Frame-Options: SAMEORIGIN
-
- -

ディレクティブ

- -

DENY を指定した場合は、他のサイトからフレームにページを読み込もうとした時に失敗するだけでなく、同じサイトから読み込もうとした時にも失敗します。一方、 SAMEORIGIN を指定した場合は、フレームの中のページを含むサイトが、ページを提供しているサイトと同じである限り、フレーム内でページを利用することができます。

- -
-
DENY
-
サイト側の意図に関わらず、ページをフレーム内に表示することはできません。
-
SAMEORIGIN
-
ページは、ページ自体と同じオリジンのフレーム内でのみ表示されます。仕様書ではこのオプションを最上位、親、チェーン全体のどれに適用するかをブラウザーベンダーに任せていますが、すべての生成元が同じオリジンでない限り、利用価値がないと議論されています。 ({{bug(725490)}} を参照)。対応の詳細は{{anch("Browser compatibility", "ブラウザーの互換性")}}もご覧ください。
-
ALLOW-FROM uri (廃止)
-
これは廃止されたディレクティブであり、最近のブラウザーでは動作しません。使用しないでください。対応している古いブラウザーでは、ページは指定されたオリジン uri のフレーム内でのみ表示されます。なお、従来の Firefox では SAMEORIGIN と同じ問題がありました。 — フレームの生成元が同じオリジンであるかどうかをチェックしません。 {{HTTPHeader("Content-Security-Policy")}} ヘッダーには frame-ancestors ディレクティブがあり、代わりにこれを使用することができます。
-
- -

- -
-

メモ: meta タグに設定しても意味がありません。例えば、 <meta http-equiv="X-Frame-Options" content="deny"> は効果がありません。使用しないでください。以下の例にあるように、 X-Frame-Options は HTTP ヘッダーを通じて設定された場合のみ動作します。

-
- -

Apache の設定

- -

Apache で X-Frame-Options ヘッダをすべてのページで送信するように設定するには、サイトの設定に以下の記述を追加してください。

- -
Header always set X-Frame-Options "SAMEORIGIN"
-
- -

Apache で X-Frame-Options を DENY に設定するには、サイトの設定に以下の記述を追加してください

- -
Header set X-Frame-Options "DENY"
-
- -

nginx の設定

- -

nginx で X-Frame-Options ヘッダーを送信するように設定するには、以下の記述を http、server、 location のいずれかの設定に追加してください。

- -
add_header X-Frame-Options SAMEORIGIN always;
-
- -

IIS の設定

- -

IIS で X-Frame-Options ヘッダーを送信するように設定するには、サイトの Web.config ファイルに以下の設定を追加してください。

- -
<system.webServer>
-  ...
-
-  <httpProtocol>
-    <customHeaders>
-      <add name="X-Frame-Options" value="SAMEORIGIN" />
-    </customHeaders>
-  </httpProtocol>
-
-  ...
-</system.webServer>
-
- -

HAProxy の設定

- -

HAProxy で X-Frame-Options ヘッダーを送信するように設定するには、以下の記述を front-end、listen、backend のいずれかの設定に追加してください。

- -
rspadd X-Frame-Options:\ SAMEORIGIN
-
- -

他にも、より新しいバージョンでは次のような設定ができます。

- -
http-response set-header X-Frame-Options SAMEORIGIN
-
- -

Express の設定

- -

Express で X-Frame-Options ヘッダーを送信するように設定するには、 helmet を使用して frameguard でヘッダーを設定します。以下の記述をサーバー設定に追加してください。

- -
const helmet = require('helmet');
-const app = express();
-app.use(helmet.frameguard({ action: 'SAMEORIGIN' }));
-
- -

他にも、直接 frameguard を使用することもできます。

- -
const frameguard = require('frameguard')
-app.use(frameguard({ action: 'SAMEORIGIN' }))
-
- -

仕様書

- - - - - - - - - - - - - - -
仕様書題名
{{RFC("7034")}}HTTP Header Field X-Frame-Options
- -

ブラウザーの互換性

- -

{{Compat("http.headers.X-Frame-Options")}}

- -

関連情報

- - diff --git a/files/ja/web/http/headers/x-frame-options/index.md b/files/ja/web/http/headers/x-frame-options/index.md new file mode 100644 index 0000000000..2f334140f9 --- /dev/null +++ b/files/ja/web/http/headers/x-frame-options/index.md @@ -0,0 +1,156 @@ +--- +title: X-Frame-Options +slug: Web/HTTP/Headers/X-Frame-Options +tags: + - Apache + - Gecko + - HAProxy + - HTTP + - Security + - nginx + - セキュリティ + - レスポンスヘッダー +translation_of: Web/HTTP/Headers/X-Frame-Options +--- +
{{HTTPSidebar}}
+ +

X-Frame-OptionsHTTP のレスポンスヘッダーで、ブラウザーがページを {{HTMLElement("frame")}}, {{HTMLElement("iframe")}}, {{HTMLElement("embed")}}, {{HTMLElement("object")}} の中に表示することを許可するかどうかを示すために使用されます。サイトはコンテンツが他のサイトに埋め込まれないよう保証することで、{{interwiki("wikipedia", "クリックジャッキング")}}攻撃を防ぐために使用することができます。

+ +

強化されたセキュリティは、ユーザーが X-Frame-Options に対応したブラウザーを使用して文書にアクセスした場合のみ提供されます。

+ +
+

Note: {{HTTPHeader("Content-Security-Policy")}} ヘッダーには frame-ancestors ディレクティブがあり、対応しているブラウザーにおいてこのヘッダーを置き換えています。

+
+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +

X-Frame-Options には二つの有効なディレクティブがあります。

+ +
X-Frame-Options: DENY
+X-Frame-Options: SAMEORIGIN
+
+ +

ディレクティブ

+ +

DENY を指定した場合は、他のサイトからフレームにページを読み込もうとした時に失敗するだけでなく、同じサイトから読み込もうとした時にも失敗します。一方、 SAMEORIGIN を指定した場合は、フレームの中のページを含むサイトが、ページを提供しているサイトと同じである限り、フレーム内でページを利用することができます。

+ +
+
DENY
+
サイト側の意図に関わらず、ページをフレーム内に表示することはできません。
+
SAMEORIGIN
+
ページは、ページ自体と同じオリジンのフレーム内でのみ表示されます。仕様書ではこのオプションを最上位、親、チェーン全体のどれに適用するかをブラウザーベンダーに任せていますが、すべての生成元が同じオリジンでない限り、利用価値がないと議論されています。 ({{bug(725490)}} を参照)。対応の詳細は{{anch("Browser compatibility", "ブラウザーの互換性")}}もご覧ください。
+
ALLOW-FROM uri (廃止)
+
これは廃止されたディレクティブであり、最近のブラウザーでは動作しません。使用しないでください。対応している古いブラウザーでは、ページは指定されたオリジン uri のフレーム内でのみ表示されます。なお、従来の Firefox では SAMEORIGIN と同じ問題がありました。 — フレームの生成元が同じオリジンであるかどうかをチェックしません。 {{HTTPHeader("Content-Security-Policy")}} ヘッダーには frame-ancestors ディレクティブがあり、代わりにこれを使用することができます。
+
+ +

+ +
+

メモ: meta タグに設定しても意味がありません。例えば、 <meta http-equiv="X-Frame-Options" content="deny"> は効果がありません。使用しないでください。以下の例にあるように、 X-Frame-Options は HTTP ヘッダーを通じて設定された場合のみ動作します。

+
+ +

Apache の設定

+ +

Apache で X-Frame-Options ヘッダをすべてのページで送信するように設定するには、サイトの設定に以下の記述を追加してください。

+ +
Header always set X-Frame-Options "SAMEORIGIN"
+
+ +

Apache で X-Frame-Options を DENY に設定するには、サイトの設定に以下の記述を追加してください

+ +
Header set X-Frame-Options "DENY"
+
+ +

nginx の設定

+ +

nginx で X-Frame-Options ヘッダーを送信するように設定するには、以下の記述を http、server、 location のいずれかの設定に追加してください。

+ +
add_header X-Frame-Options SAMEORIGIN always;
+
+ +

IIS の設定

+ +

IIS で X-Frame-Options ヘッダーを送信するように設定するには、サイトの Web.config ファイルに以下の設定を追加してください。

+ +
<system.webServer>
+  ...
+
+  <httpProtocol>
+    <customHeaders>
+      <add name="X-Frame-Options" value="SAMEORIGIN" />
+    </customHeaders>
+  </httpProtocol>
+
+  ...
+</system.webServer>
+
+ +

HAProxy の設定

+ +

HAProxy で X-Frame-Options ヘッダーを送信するように設定するには、以下の記述を front-end、listen、backend のいずれかの設定に追加してください。

+ +
rspadd X-Frame-Options:\ SAMEORIGIN
+
+ +

他にも、より新しいバージョンでは次のような設定ができます。

+ +
http-response set-header X-Frame-Options SAMEORIGIN
+
+ +

Express の設定

+ +

Express で X-Frame-Options ヘッダーを送信するように設定するには、 helmet を使用して frameguard でヘッダーを設定します。以下の記述をサーバー設定に追加してください。

+ +
const helmet = require('helmet');
+const app = express();
+app.use(helmet.frameguard({ action: 'SAMEORIGIN' }));
+
+ +

他にも、直接 frameguard を使用することもできます。

+ +
const frameguard = require('frameguard')
+app.use(frameguard({ action: 'SAMEORIGIN' }))
+
+ +

仕様書

+ + + + + + + + + + + + + + +
仕様書題名
{{RFC("7034")}}HTTP Header Field X-Frame-Options
+ +

ブラウザーの互換性

+ +

{{Compat("http.headers.X-Frame-Options")}}

+ +

関連情報

+ + -- cgit v1.2.3-54-g00ecf