2017-02-24 1 views
1

Ich habe eine eckige Anwendung, die abhängig vom Setup eine REST API auf Tomcat oder eine REST API auf einem Jetty kommuniziert. Die eckige App selbst befindet sich auf demselben Kater wie ein Krieg.Wo sollten Sie Content Security Policy konfigurieren?

Die Tomcat-Setup möglicherweise eine Apache vor haben (je nach Client)

Die Anwendung muss base64 Bilder verwenden (geladen Trog CSS), aber gerade jetzt, wenn es auf einem Server gehostet ich die folgende Fehler:

Refused to load the image 'data:image/png;base64,...' because it violates the following Content Security Policy directive: "default-src https:". Note that 'img-src' was not explicitly set, so 'default-src' is used as a fallback. 

Also, was ich getan habe: In index.html, habe ich habe:

<meta http-equiv="Content-Security-Policy" 
     content="default-src https: http:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https: http:; style-src http: https: 'unsafe-inline'; img-src 'self' data: https:; connect-src http: https: ws:;"> 

In einem manuellen Feder Filter habe ich eingestellt:

httpServletResponse.setHeader("Content-Security-Policy", 
            "default-src https: http:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https: http:; style-src http: https: 'unsafe-inline'; img-src 'self' data: https:; connect-src http: https: ws:;"); 

Aber natürlich hat dies keine Auswirkungen, weil ich nicht die API für die html/js/css aufrufen.

Wie ich verstehe, ist dies nicht für Tomcat konfiguriert. Wo konfigurieren Sie normalerweise Content Security Policy/Content-Security-Policy-Header?

Ich brauche eine Lösung, die keine manuelle Konfiguration auf dem Server benötigt, auf dem die Dateien installiert werden.

Vielen Dank im Voraus!

Antwort

0

Mit Spring Security können Benutzer Sicherheitsheader einfach einfügen, um ihre Anwendung zu schützen. Hier finden Sie die Spring Security Reference Document Inhaltssicherheitsrichtlinie. Es ist wichtig zu beachten, dass Spring Security standardmäßig keine Inhaltssicherheitsrichtlinie hinzufügt. Der Webanwendungsautor muss die Sicherheitsrichtlinie (n) angeben, die für die geschützten Ressourcen durchgesetzt und/oder überwacht werden sollen. Sie können den CSP-Header mit der Java-Konfiguration aktivieren, wie unten gezeigt:

@EnableWebSecurity 
public class WebSecurityConfig extends 
WebSecurityConfigurerAdapter { 

@Override 
protected void configure(HttpSecurity http) throws Exception { 
    http 
    // ... 
    .headers() 
     .contentSecurityPolicy("script-src 'self' https://trustedscripts.example.com; object-src https://trustedplugins.example.com; report-uri /csp-report-endpoint/"); 
} 
} 
+1

Die Sache ist, die eckige Anwendung ist nicht in einem Frühling Kontext. Es ist ein WAR-Build mit Grunt und enthält nur js/css/html-Dateien. Die REST-API ist in Ordnung ... –

Verwandte Themen