CSP 평가기 | Toolypet
무료 온라인 CSP 평가기. Content Security Policy의 보안 수준을 분석하고 MCP로 자동화하세요.
이것은 무엇인가요?
Content Security Policy(CSP) 헤더를 분석하고 보안 취약점을 평가하는 도구입니다. CSP 디렉티브를 파싱하여 잠재적 XSS 우회 경로, 과도하게 허용적인 규칙, 누락된 보호 기능을 식별하고 개선 방안을 제시합니다.
입력
Content Security Policy 헤더 값을 입력하세요
미리보기
평가할 CSP를 입력하세요
사용 방법
CSP 헤더 문자열을 입력하세요. 도구가 각 디렉티브를 분석하여 보안 등급(안전, 경고, 위험)을 표시합니다. 'unsafe-inline', 'unsafe-eval' 같은 위험 요소와 와일드카드(*) 사용을 감지하고, 구체적인 개선 권장 사항을 제공합니다.
심층 분석
CSP는 XSS(Cross-Site Scripting) 공격을 방어하는 가장 효과적인 브라우저 보안 메커니즘입니다. 어떤 출처의 스크립트, 스타일, 이미지 등을 로드할 수 있는지 제한합니다.
'unsafe-inline'은 CSP의 가장 흔한 약점입니다. 인라인 스크립트를 허용하면 XSS 공격자가 삽입한 스크립트도 실행됩니다. 해결책: nonce 기반 CSP(script-src 'nonce-랜덤값')를 사용하면 서버가 생성한 nonce가 있는 스크립트만 실행됩니다. hash 기반('sha256-해시값')은 정확히 해당 코드만 허용합니다.
'strict-dynamic'은 신뢰된 스크립트가 로드한 추가 스크립트도 허용합니다. 이는 SPA 프레임워크에서 동적 스크립트 로딩을 가능하게 하면서 보안을 유지합니다. nonce + strict-dynamic 조합이 현대 웹 앱의 권장 CSP 전략입니다.
CSP 우회 기법: JSONP 엔드포인트(script-src에 허용된 도메인의 JSONP), Angular의 template injection(unsafe-eval 허용 시), base-uri 미설정 시 <base> 태그 조작 등. 따라서 base-uri 'self', object-src 'none'을 항상 설정하고, 신뢰할 수 있는 도메인만 허용하세요.
CSP Level 3는 navigate-to(네비게이션 제한), require-trusted-types-for(DOM XSS 방지) 등 새로운 디렉티브를 추가합니다. Trusted Types는 DOM XSS를 근본적으로 방지하는 브라우저 API입니다.
예시
- CSP 감사: 기존 CSP 헤더의 보안 수준 평가 및 취약점 발견
- XSS 방어 검증: CSP가 다양한 XSS 공격 벡터를 차단하는지 확인
- 마이그레이션 검증: unsafe-inline에서 nonce 기반으로 전환 후 정책 검증
Toolypet MCP 서버 설치
하나의 명령어로 AI 에이전트에 Toolypet 도구를 추가하세요. Claude Desktop, Claude Code, Cursor 및 모든 MCP 호환 클라이언트에서 사용 가능합니다.
빠른 시작
npx -y @toolypet/mcp-server@latest
MCP 클라이언트 설정
{
"mcpServers": {
"toolypet": {
"command": "npx",
"args": [
"-y",
"@toolypet/mcp-server@latest"
]
}
}
}도구 이름:
mcp__toolypet__csp_evaluator프롬프트 예시
Evaluate this CSP: default-src 'self'; script-src 'unsafe-inline' 'unsafe-eval'
입력 예시
{
"policy": "default-src 'self'; script-src 'unsafe-inline' 'unsafe-eval'"
}출력 예시
{
"score": 30,
"grade": "F",
"issues": [
{
"severity": "high",
"directive": "script-src",
"message": "'unsafe-inline' allows inline script execution"
},
{
"severity": "high",
"directive": "script-src",
"message": "'unsafe-eval' allows eval() execution"
}
]
}자주 묻는 질문
- CSP란 무엇이며 왜 중요한가요?
- Content Security Policy는 브라우저에게 어떤 출처의 리소스를 로드할 수 있는지 알려주는 HTTP 헤더입니다. XSS 공격의 영향을 크게 줄여줍니다. 코드에 XSS 취약점이 있더라도 CSP가 악성 스크립트 실행을 차단할 수 있습니다.
- unsafe-inline이 왜 위험한가요?
- unsafe-inline은 모든 인라인 스크립트 실행을 허용합니다. XSS 공격자가 삽입한 <script> 태그나 이벤트 핸들러도 실행됩니다. nonce 기반('nonce-랜덤값') 또는 hash 기반('sha256-해시') CSP로 대체하세요.
- CSP를 처음 도입할 때 어떻게 시작하나요?
- Content-Security-Policy-Report-Only 헤더로 시작하세요. 차단 없이 위반 사항만 보고합니다. report-uri로 위반 보고서를 수집하고, 문제를 해결한 후 실제 CSP 헤더로 전환하세요.
- nonce 기반 CSP는 어떻게 작동하나요?
- 서버가 매 요청마다 암호학적으로 안전한 무작위 nonce를 생성합니다. CSP 헤더에 'script-src nonce-[값]'을 설정하고, 허용할 <script> 태그에 동일한 nonce 속성을 추가합니다. 일치하는 nonce가 있는 스크립트만 실행됩니다.
- CSP가 사이트 기능을 망가뜨릴 수 있나요?
- 네. 너무 엄격한 CSP는 정상적인 스크립트, 스타일, 이미지 로딩을 차단할 수 있습니다. Report-Only 모드로 먼저 테스트하고, 점진적으로 강화하세요. 브라우저 개발자 도구의 콘솔에서 CSP 위반을 확인할 수 있습니다.
- Claude/Cursor에서 이 도구를 어떻게 사용하나요?
- AI 에이전트 설정에 'npx -y @toolypet/mcp-server@latest'로 Toolypet MCP 서버를 추가하세요. 그런 다음 AI에게 csp_evaluator 도구를 policy 파라미터와 함께 사용하도록 요청하세요.
- MCP란 무엇이며 Toolypet은 왜 지원하나요?
- MCP(Model Context Protocol)는 Claude나 Cursor 같은 AI 에이전트가 외부 도구를 사용할 수 있게 하는 개방형 표준입니다. Toolypet은 MCP를 지원하여 65개 이상의 모든 도구를 브라우저와 AI 에이전트 모두에서 사용할 수 있게 하며, 계산과 작업을 AI 워크플로우에 원활하게 통합합니다.