Permissions-Policy 생성기
브라우저 처리camera, microphone, geolocation 같은 브라우저 기능의 허용 범위를 Permissions-Policy 헤더 한 줄로 만듭니다. 'camera none', 'fullscreen self'처럼 쉽게 적어도 정식 문법으로 바꾸고 오타를 알려 줍니다.
- 파일·이미지·문서 처리 도구는 브라우저 안에서 처리되더라도 원본에 개인정보나 민감 정보가 포함될 수 있습니다. 공유·제출 전 원본과 결과를 한 번 더 확인하세요.
Permissions-Policy 헤더는 내 사이트와 그 안에 넣은 iframe이 카메라, 마이크, 위치, 결제 같은 브라우저 기능을 쓸 수 있는지 정합니다. 광고나 외부 위젯이 몰래 위치 정보를 요청하지 못하게 막는 데 쓰이며, 보안 점검 도구들이 빠지면 지적하는 헤더이기도 합니다.
Permissions-Policy: camera=(), microphone=(), geolocation=(self "https://maps.example.com"), fullscreen=(self), payment=*
Permissions-Policy 생성기 사용 가이드
Permissions-Policy 헤더는 내 사이트와 그 안에 넣은 iframe이 카메라, 마이크, 위치, 결제 같은 브라우저 기능을 쓸 수 있는지 정합니다. 광고나 외부 위젯이 몰래 위치 정보를 요청하지 못하게 막는 데 쓰이며, 보안 점검 도구들이 빠지면 지적하는 헤더이기도 합니다.
기능마다 한 줄씩 'camera=()'처럼 정식 문법으로 적어도 되고, 'camera none', 'fullscreen self', 'geolocation self https://maps.example.com'처럼 써도 됩니다. 도구가 ()·(self)·(self "https://…")·* 형식으로 바꿔 쉼표로 이은 한 줄을 만듭니다.
알려진 기능 이름 목록과 비교해 camra처럼 오타로 보이는 이름은 결과 아래 # 줄로 알려 주고, 같은 기능이 두 번 나오면 마지막 값을 씁니다. 출처는 https://host 형태만 받으며 self, src, * 이외의 값은 오류로 표시합니다.
사용 방법
- '정책' 칸에 기능을 한 줄에 하나씩 적습니다. 예: camera none, geolocation self https://maps.example.com
- '실행'을 누르면 Permissions-Policy: … 헤더 한 줄과 필요한 안내가 나옵니다.
- 헤더 줄을 서버 설정에 넣습니다. Nginx라면 add_header Permissions-Policy "camera=(), …"처럼 값 부분만 따옴표 안에 넣습니다.
예시: 쉬운 표기로 정책 만들기
camera=() microphone none geolocation=(self "https://maps.example.com") fullscreen self payment *
Permissions-Policy: camera=(), microphone=(), geolocation=(self "https://maps.example.com"), fullscreen=(self), payment=*
none은 ()로, self는 (self)로 바뀌었습니다.
이럴 때 쓰면 좋아요
- 보안 헤더 점검에서 Permissions-Policy가 없다는 지적을 받았을 때
- 광고·위젯 iframe이 카메라나 위치 정보를 요청하지 못하게 막을 때
- 지도 서비스처럼 특정 외부 출처에만 위치 정보를 허용할 때
- 예전 Feature-Policy 설정을 새 헤더 형식으로 옮길 때
문제가 생겼을 때
허용 목록에는 self, src, * 또는 https://host 형식의 출처만 쓸 수 있습니다. 경로가 붙은 주소나 'all' 같은 단어는 지우세요.
철자가 틀렸거나 아주 새로운 기능입니다. 오타라면 고치고, 최신 기능이라면 브라우저 지원 여부를 확인한 뒤 그대로 써도 됩니다.
활용 팁
- 기능을 완전히 막으려면 ()를, 내 사이트에서만 쓰려면 (self)를 쓰세요. *는 모든 iframe에 허용하므로 꼭 필요할 때만 씁니다.
- iframe에 기능을 허용하려면 이 헤더와 함께 iframe 태그의 allow 속성에도 해당 기능을 적어야 동작합니다.
자주 묻는 질문
Feature-Policy는 'camera 'none''처럼 썼고, Permissions-Policy는 camera=()처럼 구조화된 형식을 씁니다. 현재 브라우저는 Permissions-Policy를 따르므로 이 형식으로 옮기세요.
Permissions-Policy는 HTTP 응답 헤더로만 적용됩니다. 정적 호스팅이라면 호스팅 서비스의 헤더 설정(_headers 파일 등)을 이용하세요.
FLoC은 중단되어 지금은 필요 없습니다. 알 수 없는 기능으로 안내가 나오면 빼도 됩니다.