はじめに
OWASP ZAP の診断をすると CSP: Wildcard Directive
で怒られるのですが、その原因がわからずに時間を使ってしまいました。
原因と対策を書いて供養します。
原因
原因1
form-action
が書かれていませんでした。
form-action
は指定されていないと form
タグの action
が自由に実行されてしまいます。
XSS につながって危ないです。
指定されていない directive はすべて default-src
に fallback されると思っていたので、調査に時間がかかりました。今回のように fallback されない directive もあるんですね。
原因2
docker 版の OWASP-ZAP を html に出力してテストしていたのもよくなかったです。
docker 版は手軽に利用できていいのですが、エラー内容が不親切でした。
ちゃんと PC にインストールして実行すると、詳しいエラー内容を教えてくれました。
対策
form-action
は default-src
に fallback されないので、直接指定します。
form-action 'self';
あと、めんどくさがらずにインストールしましょう。
他の fallback されない directive たち
おまけで、おなじく fallback されないものを列挙します。
この顔にピンときたら、、、。
base-uri
form-action
frame-ancestors
navigate-to