web-dev-qa-db-ja.com

TomcatでのContent-Security-Policyの構成

Content-Security-Policyヘッダーの構成/実装について読み、2つの方法に出くわしました。

  1. this linkで指定されたフィルターを実装するカスタムフィルターを使用する
  2. メタタグを使用する

この質問は this と重複していないことに注意してください、Iamは this linkで与えられたよりも良い解決策を探しています

(1)の欠点は、構成ファイルではなくコードを介して駆動されることです。オプション(2)の欠点は、100個のhtmlファイルがある場合、このタグをすべてのHTMLに配置する必要があることです。 (間違っている場合は訂正してください)私が探している解決策は、web.xmlで構成できるものであり、すべてのhtmlファイルに適用できるようになります。与えられた ここ のようにweb.xmlでX-Frame-Optionsを構成する場合と同じように、web.xmlでContent-Security-Policyを構成する同様の方法はありませんか?

6
vsp

Web.xmlでcontent-security-policyを構成します

リンクでOWASPが提供する推奨事項を使用できます https://svn.cesecore.eu/svn/ejbca/trunk/ejbca/modules/ejbca-common-web/src/org/owasp/filters/ContentSecurityPolicyFilter .Java 。これは、バックエンドに実装できるWebフィルターです。

次に、以下のフィルターをweb.xmlファイルで定義する必要があります。これは、アプリケーションのすべてのリクエストで呼び出されます。 Javaでは、適切なクラスを作成することでこれを行うことができます。

<filter>
    <filter-name>ContentSecurityPolicy</filter-name>
    <filter-class>YourPackagePath.ContentSecurityPolicyFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>ContentSecurityPolicy</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

上記は、HTTPヘッダーのcontent-security-policyに以下の値を実装します

default-src 'なし'; style-src'self''unsafe-inline '; script-src'self''unsafe-inline''unsafe-eval '; img-src '自己'; frame-src'self '; connect-src '自己';フォームアクション '自己';反映-xssブロック

4
RICHARD ABRAHAM

https://github.com/sourceclear/headlines (デッドリンク、これが私が見つけることができるすべてです: https://github.com/stevespringett/headlines を使用してみましたか=)?目標は、セキュリティ関連のヘッダーを、要求されたコードではなく構成の問題にすることです。

{
  "XContentTypeConfig": {
    "enabled": true
  },

  "XFrameOptionsConfig": {
    "enabled": true,
    "value":"DENY"
  },

  "XssProtectionConfig": {
    "enabled": true
  },

  "HstsConfig": {
    "enabled": true,
    "includeSubdomains":true,
    "maxAge":31536000
  },

  "CspConfig": {
    "csp": {
      "default-src":["'self'"]
    },
    "cspReportOnly":{}
  },

  ... snip
}
1
oreoshake