본문 바로가기
카테고리 없음

[Superset] CSP (콘텐츠 보안 정책) unsafe-eval 옵션

by 쿡노트 2023. 11. 23.
반응형

지난번 포스팅 때 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(오류) 확인

script-src 'unsafe-eval' 옵션 사용전 CSP 확인
script-src 'unsafe-eval' 옵션 사용전 오류
script-src 'unsafe-eval' 옵션 사용 후 CSP 확인


Supserset githup의 config에서 CSP 개발 모드(정확한 의미는 알 수 없었다.)처럼 'unsafe-eval' 옵션을 지정해야 자바스크립트 오류 없이 Superset에 CSP를 적용할 수 있다.

반응형