私は、ASP.NET WebFormsアプリケーションに比較的強力なヘッダーを実装する良い方法を探していますContent-Security-Policy
。私はできるだけ多くのJavaScriptをインラインではなくファイルに保存していますが、デフォルトではWebFormsは挿入します。たくさんインライン スクリプトを使用して、フォームの送信や基本的な AJAX 呼び出しなどの単純な処理を行うことができます。
MVC には、特に NWebsec などのサードパーティ ライブラリの助けを借りて nonce を実装する簡単な方法がいくつかありますが、WebForms でそれらを実装する方法は見つからないようです。.NET が挿入したスクリプト タグごとにハッシュを予測して取得する方法があれば、ハッシュを使用しても問題はありません。
値を許可するのは嫌です'unsafe-inline'
。このような強力なセキュリティ機能をオフにする必要があるのは間違っているように感じます。WebForms でこれを実装する合理的な方法はありますか?
ベストアンサー1
私も同じ問題を抱えていました。残念ながら、これが私たちが行った最善の策でした。基本的に、何を使用し、何を使用しないかを特定しました。unsafe-eval
サードパーティのコントロールを使用していたため、指示をいくつか入れる必要もありました。少なくとも、外部 URL への呼び出しは避けています。
default-src 'self';
child-src 'self' 'unsafe-inline' 'unsafe-eval';
object-src 'none';
script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.google-analytics.com;
img-src 'self' https://www.google-analytics.com;
style-src 'self' 'unsafe-inline'