CSP 분석기
URL의 콘텐츠 보안 정책(CSP) 및 Content-Security-Policy-Report-Only를 분석합니다. 위험 지시문(unsafe-inline, 와일드카드), 누락된 논스/해시 전략, 사용 중단된 패턴을 감지하고 XSS 방어 강화를 위한 실행 가능한 권장 사항을 제공합니다. 리디렉션, 원시 헤더 검사, 필터링, 발견 사항, JSON/PDF 내보내기를 지원합니다.
기능
- Content-Security-Policy 및 Content-Security-Policy-Report-Only 헤더 감지 및 설명.
- 일반적인 CSP 함정 표시: unsafe-inline, unsafe-eval, 광범위한 와일드카드, 과도하게 허용적인 소스.
- 논스 및 해시 기반 전략을 통한 안전한 스크립트/스타일 실행 지침.
- 실제 강화에서 중요한 누락된 지시문 식별(예: frame-ancestors, object-src, base-uri).
- Report-Only 통찰: 무엇이 차단될지 이해하고 프로덕션을 중단하지 않고 CSP를 롤아웃하는 방법.
- 리디렉션(최대 10회)을 따라 최종 응답 정책을 분석하여 브라우저가 적용하는 정책 확인.
- 정확한 서버 출력 및 디버깅을 위한 원시 헤더 보기.
- 발견 사항 + '문제만' 필터링이 포함된 점수 카드.
- 감사, 티켓 및 보안 검토를 위해 분석을 JSON 또는 PDF로 내보내기.
- 레거시 정책 및 마이그레이션 요구 사항을 파악하기 위한 사용 중단된 헤더 인식 포함.
🧭 사용 방법 for csp-analyzer
분석할 URL 입력
확인하려는 페이지 URL을 붙여넣으세요(종종 홈페이지 또는 앱 셸).
필요한 경우 리디렉션 따라가기 활성화
분석기가 실제 CSP가 반환되는 최종 HTTPS/www/로케일 대상에 도달할 수 있도록 '리디렉션 따라가기'를 활성화 상태로 유지하세요.
점수 카드 및 발견 사항 검토
중요한 위험(unsafe-inline, 와일드카드, 누락된 제한)을 발견하고 점수를 결정하는 지시문을 이해하려면 발견 사항부터 시작하세요.
디버깅 시 원시 헤더 검사
정확한 헤더 이름/값을 확인하려면 '원시 헤더 표시'를 켜세요(여러 CSP 헤더가 있거나 프록시/CDN이 수정하는 경우 유용).
보안 워크플로우를 위한 보고서 내보내기
자동화를 위해 JSON을 다운로드하거나 보안 감사 및 엔지니어링 티켓을 위해 PDF를 다운로드하세요.
기술 사양
요청 모델
이 도구는 URL 헤더 검사를 수행하고 CSP 및 report-only 정책을 포함한 보안 헤더 분석에 중점을 둡니다.
| 설정 | 동작 | 기본값 |
|---|---|---|
| 리디렉션 따라가기 | 리디렉션 체인을 따라 최종 URL이 반환하는 유효 정책을 분석합니다 | 활성화됨 |
| 최대 리디렉션 횟수 | 루프를 방지하기 위한 리디렉션 제한 | 10 |
| 타임아웃 | 요청 타임아웃 제한 | 15000 ms |
| 사용자 에이전트 | 요청 사용자 에이전트를 식별합니다 | Encode64Bot/1.0 (+https://encode64.com) |
| 사설 네트워크 | 안전을 위해 사설 네트워크 범위 접근을 차단합니다 | 비활성화됨 (사설 네트워크 허용 안 됨) |
검사된 CSP 헤더
분석기는 강제 및 비강제 정책을 모두 확인하고 읽기 쉬운 형태로 표시합니다.
| 헤더 | 의미 |
|---|---|
| Content-Security-Policy | 브라우저에 의해 적용되는 강제 정책 |
| Content-Security-Policy-Report-Only | 위반 사항을 보고하는 비차단 정책 (배포 및 조정에 유용함) |
분석 대상 항목
발견 사항은 실용적인 CSP 강화 검사 및 일반적인 배포 실수를 기반으로 합니다.
| 영역 | 발견 사항 예시 |
|---|---|
| 스크립트 정책 강도 | unsafe-inline / unsafe-eval 사용, 와일드카드 소스, 누락된 nonce/hash 전략 |
| 스타일 정책 강도 | unsafe-inline 스타일, 지나치게 광범위한 소스, 가능한 경우 nonce/hash로의 마이그레이션 경로 누락 |
| 프레이밍 및 클릭재킹 방지 | 누락되거나 약한 프레임 제한 (종종 frame-ancestors를 통해) |
| 레거시 / 사용 중단된 패턴 | 현대화해야 할 오래된 지시문 또는 패턴 |
| 배포 준비 상태 | Report-Only 정책 존재 및 보고 엔드포인트 가시성 |
명령줄
CSP 헤더를 빠르게 검사하려면 다음 명령어를 사용하세요. 분석기가 보고하는 내용을 검증하는 데 유용합니다.
macOS / Linux
응답 헤더 가져오기 (CSP 찾기)
curl -I https://example.com응답 헤더에서 Content-Security-Policy와 Content-Security-Policy-Report-Only를 검사합니다.
헤더 확인하면서 리디렉션 따르기
curl -IL https://example.com최종 목적지(HTTPS, www, 앱 셸 경로)의 CSP 헤더를 확인할 수 있도록 합니다.
CSP 헤더만 표시 (대소문자 구분 없음)
curl -I https://example.com | grep -i "content-security-policy"전체 헤더 세트에서 CSP 및 report-only 헤더를 빠르게 분리합니다.
Windows (PowerShell)
CSP 헤더 검사
$r = Invoke-WebRequest -Uri https://example.com -Method Head; $r.Headers['Content-Security-Policy']; $r.Headers['Content-Security-Policy-Report-Only']존재하는 경우 강제 및 report-only CSP 헤더를 표시합니다.
사용 사례
XSS에 대한 사이트 강화
스크립트/스타일이 로드될 수 있는 출처와 인라인 코드 처리 방식을 제한하여 주입 취약점의 영향을 줄이기 위해 CSP를 사용하세요.
- unsafe-inline/unsafe-eval 식별 및 nonce/해시로의 마이그레이션 계획 수립
- script-src/style-src 출처를 신뢰할 수 있는 오리진으로 제한
- 누락된 방어적 지시문 추가 (base-uri, object-src, frame-ancestors)
Report-Only로 CSP 안전하게 롤아웃
Content-Security-Policy-Report-Only로 시작하여 위반 사항을 반복적으로 개선함으로써 프로덕션을 중단하지 않고 점진적으로 CSP를 도입하세요.
- report-only 정책 존재 감지
- 적용 전에 차단될 내용 이해
- 롤아웃 계획 및 티켓용 보고서 내보내기
깨진 스크립트, iframe 또는 서드파티 위젯 디버깅
지나치게 엄격한 CSP는 분석, 임베드 또는 API 연결을 차단할 수 있습니다. 분석기를 사용하여 정책이 허용하는 내용과 명시적 출처가 필요한 부분을 확인하세요.
- 허용된 script/img/connect/frame 출처 확인
- 빠른 수정으로 추가된 과도한 와일드카드 감지
- 광범위한 허용을 대상 도메인으로 대체
보안 검토 / 규정 준수 증거
보안 검토, 고객 설문지 또는 내부 규정 준수를 위해 현재 CSP 상태에 대한 일관된 보고서를 생성하세요.
- 시간 경과에 따른 변경 사항 추적을 위해 JSON 다운로드
- 감사 아티팩트 및 공유를 위해 PDF 다운로드
❓ Frequently Asked Questions
❓CSP란 무엇이며 무엇으로부터 보호하나요?
❓CSP와 CSP Report-Only의 차이점은 무엇인가요?
❓unsafe-inline이 위험한 것으로 간주되는 이유는 무엇인가요?
❓nonce나 해시가 필요한가요?
❓CDN이나 프록시가 내 CSP 헤더를 변경할 수 있나요?
❓CSP는 XSS 버그 수정을 대체하나요?
❓여기에 URL을 붙여넣는 것이 안전한가요?
Pro Tips
Content-Security-Policy-Report-Only로 시작하여 위반 사항을 수집한 후 강화하고 강제 적용하세요. CSP는 실제 앱에 대해 반복적입니다.
unsafe-inline을 nonce 또는 해시 전략으로 교체하세요. 정책을 명시적이고 최소화하여 유지하세요.
클릭재킹 위험을 줄이고 레거시 헤더에만 의존하지 않도록 frame-ancestors를 추가하세요.
빠른 해결책으로 광범위한 와일드카드를 피하세요. 스크립트/이미지/연결에 대해 대상 도메인을 선호하고 타사 요구 사항을 검토하세요.
JSON 보고서를 내보내고 CI에서 CSP 변경 사항을 추적하여 CDN/앱 업데이트 시 헤더가 수정될 때 회귀를 포착하세요.
Additional Resources
Other Tools
- CSS 정리 도구
- HTML 정리 도구
- 자바스크립트 정리 도구
- PHP 정리 도구
- 색상 선택기
- 스프라이트 추출기
- Base32 이진 인코더
- Base32 디코더
- Base32 인코더
- Base58 이진 인코더
- Base58 디코더
- Base58 인코더
- Base62 이진 인코더
- Base62 디코더
- Base62 인코더
- Base64 이진 인코더
- Base64 디코더
- Base64 인코더
- 16진수 이진 인코더
- 16진수 디코더
- 16진수 인코더
- C# 포맷터
- CSV 포맷터
- Dockerfile Formatter
- Elm 포맷터
- ENV 포맷터
- Go 포맷터
- GraphQL 포맷터
- HCL 포맷터
- INI 포맷터
- JSON 포맷터
- LaTeX 포맷터
- 마크다운 포맷터
- Objective-C 포맷터
- Php Formatter
- 프로토콜 버퍼 포맷터
- Python 포맷터
- Ruby 포맷터
- Rust 포맷터
- Scala 포맷터
- 셸 스크립트 포맷터
- SQL 포맷터
- SVG 포맷터
- Swift 포맷터
- TOML 포맷터
- Typescript Formatter
- XML 포맷터
- YAML 포맷터
- Yarn 포맷터
- CSS 압축기
- Html Minifier
- Javascript Minifier
- JSON 압축기
- XML 최소화 도구
- Cache Headers Analyzer
- Cors Checker
- Dns Records Lookup
- HTTP 헤더 뷰어
- Http Status Checker
- Open Graph Meta Checker
- Redirect Chain Viewer
- Robots Txt Tester
- Security Headers Checker
- Security Txt Checker
- Sitemap Url Inspector
- Tls Certificate Checker
- PDF 텍스트 변환
- 정규식 테스터
- 검색 순위 확인기
- Whois 조회