Phoenix.Controller.put_secure_browser_headers に対して、Mapを渡すことでデフォルト値とマージして評価してくれます。
なのでCSPに対応したい場合は、キーを "content-security-policy"
にして値を渡すことで解決できます。
plug :put_secure_browser_headers, %{ "content-security-policy" => # 以下は例 """ default-src 'self'; script-src 'self' 'unsafe-eval' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; connect-src 'self' ws: wss:; img-src 'self' data:; """ |> String.replace("\n", " ") |> String.trim() }
Phoenixのセキュリティに関するチェックをしてくれる https://github.com/nccgroup/sobelow ではこの部分をチェックしてくれるので
参考
EEF Security WG のページは勉強になります。