2016-04-21 4 views
0

У меня есть webapp (myApp - разработан с SpringBoot и VAADIN). Webapp будет развернут на сервере tomcats http://tomcatserver:8080/myApp.Content-Security-Policy для webapp в iFrame

Теперь я хотел бы показать webapp в.

Одно требование заключается в том, что IFRAME должен работать только для белого списка доменов, которые реализуют IFRAME. У меня есть веб-сервер http://myWebserver:8081, который имеет index.html внутри IFRAME.

веб-приложение генерирует следующее в 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")