Content-Security-Policy(CSP)を、ディレクティブごとのチェックと入力で組み立てます。HTTPヘッダー・<meta>・Apache・nginx の書き方で出力し、危ない設定はその場で指摘します。
2回押すと、今の設定が貼り付けた内容に置き換わります。
'nonce-…')はリクエストごとにサーバーでランダムな値を作り、ヘッダーと <script nonce="…"> の両方に入れる必要があります。ここで入れた値は形を見るための例です。<meta> では frame-ancestors・report-uri・report-to・sandbox が効かず、Report-Only も使えません。対応状況はブラウザごとに異なるので、MDN などの公式情報で確認してください。Content-Security-Policy(CSP)を、ディレクティブごとのチェックボックスと入力欄で組み立てるツールです。HTTPヘッダー・<meta>・Apache・nginx の書き方で出力し、'unsafe-inline' や * のような危ない設定をその場で指摘します。
まず「Report-Only(報告だけ)」で出力したヘッダーを設定すると、ブロックせずに違反だけをブラウザのコンソールや報告先に知らせてくれます。数日様子を見て違反がなくなってから「適用」に切り替えるのが安全です。
ページ内に書かれた <script> や onclick 属性をすべて実行できるため、攻撃者が差し込んだスクリプトも動いてしまい、XSS対策としての効果がほぼなくなります。script-src で選ぶと「危険」と表示されるので、nonce か hash に置き換えられないか確認してください。
できればHTTPヘッダーです。<meta> では frame-ancestors(クリックジャッキング対策)や報告先、Report-Only が使えません。サーバー設定を変えられないホスティングでは <meta> 形式を選ぶと、使えない部分を外した形で出力します。
Apache は .htaccess か VirtualHost 内に Header always set の行を書きます(mod_headers が必要)。nginx は server か location ブロックに add_header の行を書きます。出力形式を切り替えると、それぞれの書き方でコピーできます。