CSP 정책 생성
CSP Builder
안내 양식이나 위반 리포트를 바탕으로 CSP를 만들고 각 지시어의 의미를 설명합니다.
Content-Security-Policy는 XSS 취약점을 침해가 아니라 콘솔에 찍힌 차단 메시지로 바꾸는 헤더이자, 아무 효과 없는 형태로 배포되는 일이 가장 잦은 헤더이기도 합니다. 이 도구는 지시어를 하나씩 세우면서 각각이 실제로 무엇을 막는지 설명합니다.
기존 정책 불러오기
따로 지정하지 않은 모든 가져오기 지시어의 기본값입니다.
스크립트를 어디서 불러올 수 있는지. XSS를 실제로 막는 지시어입니다.
스타일시트를 어디서 불러올 수 있는지.
이미지를 어디서 불러올 수 있는지.
글꼴을 어디서 불러올 수 있는지.
fetch·XHR·WebSocket·EventSource가 어디로 연결할 수 있는지.
<audio>와 <video>를 어디서 불러올 수 있는지.
<object>/<embed>를 어디서 불러올 수 있는지. 보통 'none'이 낫습니다.
<iframe> 문서를 어디서 불러올 수 있는지.
누가 이 페이지를 프레임에 넣을 수 있는지. X-Frame-Options를 대체합니다.
<base href>에 무엇을 넣을 수 있는지. 'self'나 'none'으로 제한하십시오.
폼이 어디로 전송될 수 있는지.
Worker·SharedWorker·서비스 워커를 어디서 불러올 수 있는지.
웹 앱 매니페스트를 어디서 불러올 수 있는지.
http:// 하위 자원 요청을 https://로 바꿔서 보냅니다.
http:// 하위 자원을 아예 차단합니다(구형).
- ⚠ frame-ancestors가 없습니다. 누가 이 페이지를 프레임에 넣을 수 있는지 정하려면 'none'이나 'self'로 추가하십시오.
- ⚠ base-uri가 없습니다. <base> 태그 주입을 막으려면 base-uri 'self'를 추가하십시오.
Content-Security-Policy
default-src 'self'; script-src 'self'사용 방법
양식이나 위반 리포트에서 시작합니다
안내 양식은 스크립트·스타일·이미지·연결이 어디서 오는지 묻습니다. 위반 리포트가 이미 있다면 붙여 넣으십시오. 실제로 불러온 것에서 출처를 뽑아냅니다.
먼저 report-only로 배포합니다
`Content-Security-Policy-Report-Only`는 차단하지 않고 위반만 기록합니다. 일주일쯤 돌려 보면 아무도 기억하지 못하던 외부 삽입 요소가 리포트에 나타납니다.
`unsafe-inline`은 마지막에 제대로 없앱니다
`script-src 'unsafe-inline'`이 들어간 정책은 사실상 아무것도 막지 못합니다. 응답마다 다른 nonce나 인라인 블록의 해시로 바꾸십시오. 두 형태 모두 만들어 줍니다.
자주 묻는 질문
이 도구가 사이트를 검사하나요?
아니요. 입력한 내용으로 정책을 만들고 설명할 뿐입니다. 실제 사이트가 지금 무엇을 보내는지 확인하는 것은 보안 헤더 점검 도구의 일입니다.
왜 인라인 스크립트가 계속 허용되나요?
같은 지시어에 `unsafe-inline`이 함께 있으면 하위 호환을 위해 nonce나 해시가 무시됩니다. 둘을 같이 둘 수 없고, 느슨한 쪽이 이깁니다.
`default-src 'self'` 하나면 충분한가요?
기본으로는 좋지만 여기에 기대지 않는 지시어가 있습니다. `frame-ancestors`·`form-action`·`base-uri` 같은 것들입니다. 명시적으로 지정해야 하고, 이 도구가 그렇게 만들어 줍니다.
이 도구로 이어지는 것
SRI 해시 생성
Subresource Integrity Hash
붙여넣거나 올린 스크립트·스타일시트의 Subresource Integrity 속성(sha256/384/512)을 계산합니다.
CORS 점검
CORS Tester
지정한 출처에서 브라우저가 보낼 프리플라이트와 Origin을 실은 GET 요청을 보내고, Fetch 표준 규칙으로 어떤 헤더 때문에 막혔는지 짚어 줍니다.
보안 헤더 점검
Security Header Scan
사이트의 HSTS·CSP·프레임·리퍼러·권한 헤더를 채점하고 무엇을 추가해야 할지 알려 줍니다.
비밀번호 생성기
Password Generator
길이·문자 종류·헷갈리는 글자 제외 규칙을 정해 무작위 비밀번호를 필요한 만큼 만듭니다.
다음 단계
이 도구의 결과를 그대로 받을 수 있는 도구들입니다.
CORS 점검
CORS Tester
지정한 출처에서 브라우저가 보낼 프리플라이트와 Origin을 실은 GET 요청을 보내고, Fetch 표준 규칙으로 어떤 헤더 때문에 막혔는지 짚어 줍니다.
HTTP 헤더 확인
HTTP Header Inspector
URL을 요청해 전체 응답 헤더·리다이렉트 경로·소요 시간·사용된 압축 방식을 보여 줍니다.
보안 헤더 점검
Security Header Scan
사이트의 HSTS·CSP·프레임·리퍼러·권한 헤더를 채점하고 무엇을 추가해야 할지 알려 줍니다.
SRI 해시 생성
Subresource Integrity Hash
붙여넣거나 올린 스크립트·스타일시트의 Subresource Integrity 속성(sha256/384/512)을 계산합니다.
의심 링크 확인
Suspicious URL Check
링크를 열기 전에 주소 형태(혼동 글자·IP 호스트·@ 속임수·깊은 서브도메인·이상한 포트·단축 서비스)를 검사하고, 원하면 리다이렉트 경로와 도메인 등록 시점을 확인합니다. 평판 데이터베이스는 없습니다.
Base64 인코딩·디코딩
Base64 Encoder & Decoder
텍스트와 파일을 Base64·Base64URL로 인코딩·디코딩하며 UTF-8을 올바르게 처리합니다.