質問編集履歴
2
誤記 Contents -> Content でした
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
httpヘッダーで
|
1
|
+
httpヘッダーでContent-Security-Policy: 'strict-dynamic'を指定した場合のfirefoxでのコンソール警告について
|
body
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
|
-
phpを使ったWebフォームのXSS対策として、httpヘッダーで nonceを使った
|
2
|
+
phpを使ったWebフォームのXSS対策として、httpヘッダーで nonceを使ったContent-Security-Policy: script-src 'strict-dynamic'を設定しようとしています。
|
3
3
|
挙動自体は問題なく、nonceが一致したscriptだけが実行されるようにはなったのですが、firefoxのコンソール上で、警告が表示されてしまうのが気にかかっています。
|
4
4
|
|
5
5
|
### 該当のソースコード
|
1
調べたことを少し追記しました
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
|
-
phpを使ったWebフォームのXSS対策として、httpヘッダーで nonceを使ったContents Security Policy: 'strict-dynamic'を設定しようとしています。
|
2
|
+
phpを使ったWebフォームのXSS対策として、httpヘッダーで nonceを使ったContents Security Policy: script-src 'strict-dynamic'を設定しようとしています。
|
3
3
|
挙動自体は問題なく、nonceが一致したscriptだけが実行されるようにはなったのですが、firefoxのコンソール上で、警告が表示されてしまうのが気にかかっています。
|
4
4
|
|
5
5
|
### 該当のソースコード
|
@@ -11,4 +11,13 @@
|
|
11
11
|
|
12
12
|
CSP3をサポートしていれば、nonce値と'strict-dynamic'以外は無視されるため、コンソールに表示されている警告は「無視しましたよ」という事実だけを表示しているものだと認識しているのですが、このままにしておいて良いのか、ブラウザによってheader関数を出しわける?等をした方が良いのかわかりません。。
|
13
13
|
|
14
|
+
|
14
|
-
|
15
|
+
#####ここから追記
|
16
|
+
safariがCSP3非対応で、動的に生成されたscriptは(親のnonceが合っていても)実行されないようなので、結局ブラウザによるhttpヘッダーの出し分けが必要なのかな、と思いました。
|
17
|
+
|
18
|
+
[https://caniuse.com/?search=csp](https://caniuse.com/?search=csp)
|
19
|
+
[https://caniuse.com/?search=strict-dynamic](https://caniuse.com/?search=strict-dynamic)
|
20
|
+
|
21
|
+
GTMタグをインラインで入れているので、nonceをサポートしないブラウザ(IEなど)は'unsafe-inline'を適用することになるのですが、そうなると結局IEではXSSできてしまうということでしょうか?皆さんどうしているのでしょう。。
|
22
|
+
|
23
|
+
「ブラウザごとによってこうやってCSP出し分けてるよ(もしくはCSPなんて全く使ってないよ、でも。)」というのがあれば是非ご教示いただきたいです。
|