취약한 Content Security Policy

취약한 Content Security Policy

설명

느슨한 CSP는 XSS 방어 효과를 낮추며, 과도하게 많은 스크립트 출처나 unsafe-inline, unsafe-eval 사용은 우회 가능성을 높입니다.

잠재적 영향

스크립트 삽입, 세션 탈취, 클라이언트 측 데이터 유출이 가능합니다.

해결 방법

기본 출처를 제한하고, 스크립트 출처는 필요한 도메인으로만 좁히며 nonce 또는 hash 기반 CSP를 사용합니다.

예시

변경 전

php
<?php
header("Content-Security-Policy: script-src 'self' unpkg.com cdn.jsdelivr.net;");

변경 후

php
<?php
header("Content-Security-Policy: default-src 'self'; script-src 'self'; object-src 'none';");

설명:

  • 변경 전: Content Security Policy가 안전하지 않은 스크립트 실행 또는 사용자가 제어하는 스크립트 포함을 허용합니다.
  • 변경 후: 출처를 같은 사이트로 제한하고 객체 삽입을 차단합니다. 이 예시는 nonce나 hash를 사용하지 않으며, 같은 출처의 사용자 업로드·스크립트도 검토해야 합니다. CSP는 출력 인코딩을 대신하지 않습니다.

참조