2016-04-21 230 views
0

我有一個webapp(myApp--使用springBoot和VAADIN開發)。 該webapp將部署在tomcats服務器http://tomcatserver:8080/myApp上。iFrame中webapp的內容安全策略

現在我想展示一個webapp。

現在有一個要求,即IFRAME應該只適用於實現IFRAME的域的白名單。 所以我有一個網絡服務器http://myWebserver:8081它有一個index.html裏面的IFRAME。

webapp的生成春天的WebSecurityConfigureAdapter如下:

http.csrf().disable(); // Requirement: DTEUTARIF-111 

http.headers() 
     .frameOptions().disable() 
     .and() 
     .headers().contentTypeOptions() 
     .and() 
     .xssProtection() 
     .and() 
     .httpStrictTransportSecurity() 
     .and() 
     .addHeaderWriter(
       new StaticHeadersWriter(
         "Content-Security-Policy", 
         "default-src 'self';" + 
          "child-src 'self' http://myWebserver:8081;" + 
          "script-src 'self' http://myWebserver:8081;" + 
          "style-src 'self' http://myWebserver:8081;" + 
          "connect-src 'self' http://myWebserver:8081;" + 
          "font-src 'self' http://myWebserver:8081;" + 
          "object-src 'self' http://myWebserver:8081;" 
         ) 
       ); 

但我總是得到

angular.js:3543 Refused to apply inline style because it violates the following Content Security Policy directive: "style-src 'self' http://myWebserver:8081". Either the 'unsafe-inline' keyword, a hash ('sha256-1PxuDsPyGK6n+LZsMv0gG4lMX3i3XigG6h0CzPIjwrE='), or a nonce ('nonce-...') is required to enable inline execution. 

與同爲 '腳本src' 中。

我不知道到100%,但是當我添加'unsafe-inline'腳本SRC風格-SRC的IFRAME是開放的每一個領域。

我該怎麼做?反正有可能嗎?

回答

0

來獲得成功的解決方案,我代替:

new StaticHeadersWriter(
         "Content-Security-Policy", 
         "default-src 'self';" + 
          "child-src 'self' http://myWebserver:8081;" + 
          "script-src 'self' http://myWebserver:8081;" + 
          "style-src 'self' http://myWebserver:8081;" + 
          "connect-src 'self' http://myWebserver:8081;" + 
          "font-src 'self' http://myWebserver:8081;" + 
          "object-src 'self' http://myWebserver:8081;" 
         ) 

new StaticHeadersWriter("Content-Security-Policy", 
         "frame-ancestors 'self' http://myWebserver:8081")