1001Ferramentas
🛂Segurança

Gerador de Permissions-Policy

Monta o header Permissions-Policy a partir de uma lista feature=allowlist (ex: geolocation=()).



  

Desligando câmera e GPS pelo cabeçalho HTTP

Um iframe de terceiro na sua página pode pedir câmera, microfone ou localização, e o navegador vai perguntar ao usuário como se fosse você pedindo. O Permissions-Policy, sucessor do antigo Feature-Policy, corta isso na raiz. O que trava a maioria das pessoas é a sintaxe, com aquele feature=() de parênteses vazios que parece erro de digitação, mas é justamente a lista de permitidos vazia.

Aqui cabe um aviso honesto sobre esta página. O rótulo pede uma feature por linha, só que o campo é um input de linha única, onde não dá para digitar quebra de linha. O código separa por quebra de linha e junta com vírgula, então na prática ele apenas prefixa Permissions-Policy: no que você escreveu. Pior: o valor de exemplo já vem com \n literais no meio e sai exatamente assim na saída. Limpe o campo e digite sua lista já separada por vírgula.

O formato é feature=(lista). Parênteses vazios bloqueiam para todo mundo, (self) libera só a sua origem e (self "https://parceiro.com") libera a sua mais uma terceira, com as aspas duplas mesmo. Uma linha típica fica assim: geolocation=(), camera=(), microphone=(), fullscreen=(self). Nada de vírgula sobrando no fim. Depois de publicar, confira nos response headers pelo DevTools e teste os iframes, porque a política desce para eles. A montagem roda no navegador, sem enviar nada.

Perguntas frequentes

Por que aparecem barras com n no meio da saída?
É um defeito do valor de exemplo, que traz \n literais em vez de quebras de linha reais. Apague o conteúdo do campo e escreva sua lista separada por vírgula que a saída fica correta.
Qual a diferença entre () e (self)?
Parênteses vazios negam o recurso para todo mundo, inclusive para a sua própria página. (self) mantém o recurso disponível na sua origem e o bloqueia em iframes de outras origens.
Ainda preciso mandar Feature-Policy junto?
Na prática não. Feature-Policy é o nome antigo e os navegadores atuais leem Permissions-Policy. Mandar os dois só aumenta a chance de as duas listas discordarem.

Ferramentas Relacionadas