2017. 4. 19. 20:04ㆍTech/scala
웹개발하다 보면 간혹가다 웹서버의 설정으로 인하여 아래와 같은 에러메시지가 발생할 때가 있다.
Chrome ::
Refused to connect to '{URL}' because it violates the following Content Security Policy directive: "default-src 'self'". Note that 'connect-src' was not explicitly set, so 'default-src' is used as a fallback. |
Firefox ::
Content Security Policy: The page’s settings blocked the loading of a resource at {URL} (“default-src {@host}”). |
역시 간단하게 해결 가능한 CORS 이슈이며, 웹페이지의 Header값을 보면
Content-Security-Policy이 정의 되있는 것을 볼 수 있다.
본인은 Play Framework 2.5.x를 쓰며 처음 겪는 경우인데, Self(자신을 대상으로 하는 Host)가 Default Value로 설정되있는 것이 원인이라서 같은 Host라도 프로토콜이 다른 위치를 호출하거나 외부의 Static Files를 호출하면 발생한다.
Play Framework에서는 application.conf에서 아래처럼 정의해 해결했다.
play.filters.headers.contentSecurityPolicy = ""
Nginx나 Apache에서도 비슷한 Syntax를 찾아 고치면 될것으로 보인다.