[웹][파이썬] google app engine 에서 django 사용시 CSP 설정



google app engine 에서 django  사용시 CSP 설정


아래 djangae-scaffold 를 사용해서 application 을 만들고, local 에서 manage.py runserver 를 이용해서 test 를 해봤다.

그런데 page 를 하나 열었는데, script 와 css 가 load 되지 않았다. 개발자 창을 열어보니 아래같은 error 가 보였다.


Refused to load the stylesheet 'https://...' because it violates the following Content Security Policy directive: " .... "

Refused to execute inline script because it violates the following Content Security Policy directive: " ... ". Either the 'unsafe-inline' keyword, a hash ('sha256-E10YXaV2iv/dhu+RHK07noKKX9fAa3xeSXYmXxZ41/0='), or a nonce ('nonce-...') is required to enable inline execution.


server 에서 response 를 보낼때 header 에 들어간 content security policy 내용이랑 css/script 에서 src 로 지정한 url 이 틀려서 발생한 에러이다.

그래서 django 의 settings.py 부분을 수정했다.

if DEBUG:
    CSP_STYLE_SRC = ("'self'", "'unsafe-inline'")

# sensible default CPS settings, feel free to modify them
CSP_DEFAULT_SRC = ("'self'", "*.gstatic.com")
CSP_STYLE_SRC = ("'self'", "fonts.googleapis.com", "*.gstatic.com")
CSP_FONT_SRC = ("'self'", "themes.googleusercontent.com", "*.gstatic.com")
CSP_FRAME_SRC = ("'self'", "www.google.com", "www.youtube.com", "accounts.google.com", "apis.google.com", "plus.google.com")
CSP_SCRIPT_SRC = ("'self'", "*.googleanalytics.com", "*.google-analytics.com", "ajax.googleapis.com")
CSP_IMG_SRC = ("'self'", "data:", "s.ytimg.com", "*.googleusercontent.com", "*.gstatic.com")
CSP_CONNECT_SRC = ("'self'", "plus.google.com", "www.google-analytics.com")




Reference


  1. css - Django , Content Security Policy directive - Stack Overflow
  2. “Content Security Policy: A Primer” — Mike West




댓글 없음:

댓글 쓰기