前提・実現したいこと
phpを使ったWebフォームのXSS対策として、httpヘッダーで nonceを使ったContent-Security-Policy: script-src 'strict-dynamic'を設定しようとしています。
挙動自体は問題なく、nonceが一致したscriptだけが実行されるようにはなったのですが、firefoxのコンソール上で、警告が表示されてしまうのが気にかかっています。
該当のソースコード
php
1header("Content-Security-Policy: script-src 'nonce-$nonce' 'unsafe-inline' 'strict-dynamic' https: http: ;");
CSP3をサポートしていれば、nonce値と'strict-dynamic'以外は無視されるため、コンソールに表示されている警告は「無視しましたよ」という事実だけを表示しているものだと認識しているのですが、このままにしておいて良いのか、ブラウザによってheader関数を出しわける?等をした方が良いのかわかりません。。
#####ここから追記
safariがCSP3非対応で、動的に生成されたscriptは(親のnonceが合っていても)実行されないようなので、結局ブラウザによるhttpヘッダーの出し分けが必要なのかな、と思いました。
https://caniuse.com/?search=csp
https://caniuse.com/?search=strict-dynamic
GTMタグをインラインで入れているので、nonceをサポートしないブラウザ(IEなど)は'unsafe-inline'を適用することになるのですが、そうなると結局IEではXSSできてしまうということでしょうか?皆さんどうしているのでしょう。。
「ブラウザごとによってこうやってCSP出し分けてるよ(もしくはCSPなんて全く使ってないよ、でも。)」というのがあれば是非ご教示いただきたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。