반응형
지난번 포스팅 때 Superset BI툴에 CSP (콘텐츠 보안 정책) 적용한 내역을 기재했다.
superset githup CSP 지시문 & 옵션 적용 관련 하여, 두 개의 설정 내역이 존재한다. (기본과 dev mode라 지칭하겠다.)
Superset github CSP 기본 지시문 & 옵션 (구글 검색 'superset config.py')
TALISMAN_CONFIG = { "content_security_policy": { "default-src": ["'self'"], "img-src": ["'self'", "blob:", "data:"], "worker-src": ["'self'", "blob:"], "connect-src": [ "'self'", "https://api.mapbox.com", "https://events.mapbox.com", ], "object-src": "'none'", "style-src": [ "'self'", "'unsafe-inline'", ], "script-src": ["'self'", "'strict-dynamic'"], }, "content_security_policy_nonce_in": ["script-src"], "force_https": False, } |
Superset githup의 CSP 기본 지시문의 옵션과 dev mode 옵션의 차이는 script-src 지시문의 옵션 차이이다. (나머지는 지시문 & 옵션 동일)
기본 : "script-src": ["'self'", "'strict-dynamic'"], dev mode : "script-src": ["'self'", "'unsafe-inline'", "'unsafe-eval'"], |
script-src의 'unsafe-eval' 옵션 은 eval과 같은 자바스크립트(XSS - 교차 사이트 스크립팅 공격 취약 한가?)를 허용한다고 해서, 'unsafe-eval' 옵션을 적용 안 하고 정책 테스트를 해봤다.
'unsafe-eval' 옵션 미적용 시 약 23건의 자바스크립트 오류가 발생한다.
결론은 내가 설치한 superset(버전 2.0.1) 에는 'unsafe-eval' 옵션 적용이 필요하다.
superset githup 에도 dev mode에는 'unsafe-eval'을 적용하라고 되어 있다.
'unsafe-eval' : eval 같은 텍스트-자바스크립트 메커니즘 허용 (eval(), Function())
Superset Web 로그인 접속 시 크롬 개발자 모드 Response Header(CSP), Console(오류) 확인
Supserset githup의 config에서 CSP 개발 모드(정확한 의미는 알 수 없었다.)처럼 'unsafe-eval' 옵션을 지정해야 자바스크립트 오류 없이 Superset에 CSP를 적용할 수 있다.
반응형