본문 바로가기

Permissions-Policy 생성기

브라우저 처리

camera, microphone, geolocation 같은 브라우저 기능의 허용 범위를 Permissions-Policy 헤더 한 줄로 만듭니다. 'camera none', 'fullscreen self'처럼 쉽게 적어도 정식 문법으로 바꾸고 오타를 알려 줍니다.

사용 전 확인
  • 파일·이미지·문서 처리 도구는 브라우저 안에서 처리되더라도 원본에 개인정보나 민감 정보가 포함될 수 있습니다. 공유·제출 전 원본과 결과를 한 번 더 확인하세요.
도구 실행입력 후 결과 확인
Permissions-Policy 생성기 샘플 실행

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, * 이외의 값은 오류로 표시합니다.

사용 방법

  1. '정책' 칸에 기능을 한 줄에 하나씩 적습니다. 예: camera none, geolocation self https://maps.example.com
  2. '실행'을 누르면 Permissions-Policy: … 헤더 한 줄과 필요한 안내가 나옵니다.
  3. 헤더 줄을 서버 설정에 넣습니다. 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, * 또는 출처가 아닙니다' 오류

허용 목록에는 self, src, * 또는 https://host 형식의 출처만 쓸 수 있습니다. 경로가 붙은 주소나 'all' 같은 단어는 지우세요.

'알 수 없는 기능 이름' 안내

철자가 틀렸거나 아주 새로운 기능입니다. 오타라면 고치고, 최신 기능이라면 브라우저 지원 여부를 확인한 뒤 그대로 써도 됩니다.

활용 팁

  • 기능을 완전히 막으려면 ()를, 내 사이트에서만 쓰려면 (self)를 쓰세요. *는 모든 iframe에 허용하므로 꼭 필요할 때만 씁니다.
  • iframe에 기능을 허용하려면 이 헤더와 함께 iframe 태그의 allow 속성에도 해당 기능을 적어야 동작합니다.

자주 묻는 질문

예전 Feature-Policy 헤더와 무엇이 다른가요?

Feature-Policy는 'camera 'none''처럼 썼고, Permissions-Policy는 camera=()처럼 구조화된 형식을 씁니다. 현재 브라우저는 Permissions-Policy를 따르므로 이 형식으로 옮기세요.

meta 태그로도 넣을 수 있나요?

Permissions-Policy는 HTTP 응답 헤더로만 적용됩니다. 정적 호스팅이라면 호스팅 서비스의 헤더 설정(_headers 파일 등)을 이용하세요.

interest-cohort=()도 넣어야 하나요?

FLoC은 중단되어 지금은 필요 없습니다. 알 수 없는 기능으로 안내가 나오면 빼도 됩니다.