teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

コード修正

2021/06/05 05:00

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -5,29 +5,35 @@
5
5
  ```html
6
6
  <!DOCTYPE html>
7
7
  <html lang="en">
8
+
8
9
  <head>
9
10
  <meta charset="UTF-8">
10
11
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
11
12
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
12
13
  <title>Document</title>
13
14
  </head>
15
+
14
16
  <body>
15
17
  <p>A. sandboxなし・リンク先:X-Frame-Options: DENY(正しく表示できる)</p>
18
+ <iframe
16
- <iframe srcdoc="&lt;a href=&quot;https://example.com&quot; target=&quot;_blank&quot;&gt;twitter.com&lt;/a&gt;"></iframe>
19
+ srcdoc="&lt;a href=&quot;https://twitter.com&quot; target=&quot;_blank&quot;&gt;twitter.com&lt;/a&gt;"></iframe>
17
-
20
+
18
21
  <p>B. sandboxあり・リンク先:X-Frame-Options: DENY(正しく表示できない)</p>
22
+ <iframe sandbox="allow-popups"
19
- <iframe sandbox="allow-popups" srcdoc="&lt;a href=&quot;https://twitter.com&quot; target=&quot;_blank&quot;&gt;twitter.com&lt;/a&gt;"></iframe>
23
+ srcdoc="&lt;a href=&quot;https://twitter.com&quot; target=&quot;_blank&quot;&gt;twitter.com&lt;/a&gt;"></iframe>
20
24
  <!--
21
25
  Chromeの場合の表示
22
-
26
+
23
27
  twitter.com はブロックされています
24
28
  twitter.com で接続が拒否されました。
25
29
  ERR_BLOCKED_BY_RESPONSE
26
30
  -->
27
-
31
+
28
32
  <p>C. sandboxあり・リンク先:X-Frame-Optionsなし(正しく表示できる)</p>
33
+ <iframe sandbox="allow-popups"
29
- <iframe sandbox="allow-popups" srcdoc="&lt;a href=&quot;https://example.com&quot; target=&quot;_blank&quot;&gt;example.com&lt;/a&gt;"></iframe>
34
+ srcdoc="&lt;a href=&quot;https://example.com&quot; target=&quot;_blank&quot;&gt;example.com&lt;/a&gt;"></iframe>
30
35
  </body>
36
+
31
37
  </html>
32
38
  ```
33
39
 

2

補足追加

2021/06/05 05:00

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -3,31 +3,46 @@
3
3
  sandbox属性を維持したままAと同じ挙動にする方法はありますか?
4
4
 
5
5
  ```html
6
+ <!DOCTYPE html>
7
+ <html lang="en">
8
+ <head>
9
+ <meta charset="UTF-8">
10
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
11
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
12
+ <title>Document</title>
13
+ </head>
14
+ <body>
6
- <p>A. sandboxなし・リンク先:X-Frame-Options: DENY(正しく表示できる)</p>
15
+ <p>A. sandboxなし・リンク先:X-Frame-Options: DENY(正しく表示できる)</p>
7
- <iframe srcdoc="&lt;a href=&quot;https://example.com&quot; target=&quot;_blank&quot;&gt;twitter.com&lt;/a&gt;"></iframe>
16
+ <iframe srcdoc="&lt;a href=&quot;https://example.com&quot; target=&quot;_blank&quot;&gt;twitter.com&lt;/a&gt;"></iframe>
8
-
17
+
9
- <p>B. sandboxあり・リンク先:X-Frame-Options: DENY(正しく表示できない)</p>
18
+ <p>B. sandboxあり・リンク先:X-Frame-Options: DENY(正しく表示できない)</p>
10
- <iframe sandbox="allow-popups" srcdoc="&lt;a href=&quot;https://twitter.com&quot; target=&quot;_blank&quot;&gt;twitter.com&lt;/a&gt;"></iframe>
19
+ <iframe sandbox="allow-popups" srcdoc="&lt;a href=&quot;https://twitter.com&quot; target=&quot;_blank&quot;&gt;twitter.com&lt;/a&gt;"></iframe>
11
- <!--
20
+ <!--
12
- Chromeの場合の表示
21
+ Chromeの場合の表示
13
-
22
+
14
- twitter.com はブロックされています
23
+ twitter.com はブロックされています
15
- twitter.com で接続が拒否されました。
24
+ twitter.com で接続が拒否されました。
16
- ERR_BLOCKED_BY_RESPONSE
25
+ ERR_BLOCKED_BY_RESPONSE
17
- -->
26
+ -->
18
-
27
+
19
- <p>C. sandboxあり・リンク先:X-Frame-Optionsなし(正しく表示できる)</p>
28
+ <p>C. sandboxあり・リンク先:X-Frame-Optionsなし(正しく表示できる)</p>
20
- <iframe sandbox="allow-popups" srcdoc="&lt;a href=&quot;https://example.com&quot; target=&quot;_blank&quot;&gt;example.com&lt;/a&gt;"></iframe>
29
+ <iframe sandbox="allow-popups" srcdoc="&lt;a href=&quot;https://example.com&quot; target=&quot;_blank&quot;&gt;example.com&lt;/a&gt;"></iframe>
30
+ </body>
31
+ </html>
21
32
  ```
22
33
 
23
- ### 補足
24
- そもそも何を想定したhtmlなんだ、という実装そのもののツッコミもあるかと思いますが、
25
- あくまで事象理解のためのサンプルですので、挙動について理解できればと思っています。
26
-
27
34
  ### 各ブラウザの挙動
28
35
  Chrome → ブラウザのエラー画面(ブロック)
29
36
  Firefox → ブラウザのエラー画面(ブロック)
30
37
  Safari → Twitter画面(JavaScriptを使用できません。このブラウザではJavaScriptが無効に...)
31
38
 
39
+ ※リロードしても変わりませんでした。
40
+
32
41
  Safariだけ挙動が違いますが、この結果からフレーム禁止だけでなく、
33
- iframeから別タブで開いた際にsandboxの制約が引き継がれている模様です。
42
+ iframeから別タブで開いた際にsandboxの制約が引き継がれている模様です。
43
+
44
+
45
+
46
+ ### 補足
47
+ そもそも何を想定したhtmlなんだ、という実装そのもののツッコミもあるかと思いますが、
48
+ あくまで事象理解のためのサンプルですので、挙動について理解できればと思っています。

1

補足追加

2021/06/05 03:48

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,8 +1,9 @@
1
+ ### 解決したいこと
1
2
  下記のBにおいて、なぜ別窓表示にも関わらずiframe内で開いている扱いにされてしまうのでしょうか?
2
3
  sandbox属性を維持したままAと同じ挙動にする方法はありますか?
3
4
 
4
5
  ```html
5
- <p>A. sandboxなし・リンク先:X-Frame-Options: DENY(正しく表示できる)</p>
6
+ <p>A. sandboxなし・リンク先:X-Frame-Options: DENY(正しく表示できる)</p>
6
7
  <iframe srcdoc="&lt;a href=&quot;https://example.com&quot; target=&quot;_blank&quot;&gt;twitter.com&lt;/a&gt;"></iframe>
7
8
 
8
9
  <p>B. sandboxあり・リンク先:X-Frame-Options: DENY(正しく表示できない)</p>
@@ -19,5 +20,14 @@
19
20
  <iframe sandbox="allow-popups" srcdoc="&lt;a href=&quot;https://example.com&quot; target=&quot;_blank&quot;&gt;example.com&lt;/a&gt;"></iframe>
20
21
  ```
21
22
 
23
+ ### 補足
22
24
  そもそも何を想定したhtmlなんだ、という実装そのもののツッコミもあるかと思いますが、
23
- あくまで事象理解のためのサンプルですので、挙動について理解できればと思っています。
25
+ あくまで事象理解のためのサンプルですので、挙動について理解できればと思っています。
26
+
27
+ ### 各ブラウザの挙動
28
+ Chrome → ブラウザのエラー画面(ブロック)
29
+ Firefox → ブラウザのエラー画面(ブロック)
30
+ Safari → Twitter画面(JavaScriptを使用できません。このブラウザではJavaScriptが無効に...)
31
+
32
+ Safariだけ挙動が違いますが、この結果からフレーム禁止だけでなく、
33
+ iframeから別タブで開いた際にsandboxの制約が引き継がれている模様です。