Esta página descreve como garantir um controle mais granular sobre quem pode visualizar seu conteúdo e por quanto tempo. Você pode usar URLs assinados do Cloud CDN e Service Extensions para acesso seguro e limitado por tempo às suas imagens otimizadas.
Os URLs padrão não assinados permitem que os usuários mudem ou removam manualmente strings de parâmetros de consulta no navegador. Se a lógica de negócios depende de transformações de imagem para controles de privacidade ou acesso, as consultas não assinadas apresentam os seguintes riscos:
Vazamento de metadados: um invasor pode remover parâmetros como
metadata,preserve=nonepara recuperar coordenadas de GPS ocultas ou informações confidenciais da câmera contidas no arquivo de origem.Ignorar a redação visual: se você usar parâmetros para ocultar rostos, placas de licença ou planos de fundo confidenciais com recorte, redimensionamento ou desfoque, um usuário poderá remover esses parâmetros para visualizar a imagem não redigida.
Você pode usar URLs assinados e Service Extensions para evitar solicitações de transformação indesejadas.
Prevenção com URLs assinados
Para mitigar esses riscos, configure URLs assinados do Cloud CDN para proteger suas rotas. Quando um URL é assinado, toda a string de configuração do parâmetro de consulta imop se torna parte da assinatura criptográfica que o Cloud CDN valida em cada solicitação. Se um usuário tentar mudar operações ou parâmetros, por exemplo, sizes, o Cloud CDN valida automaticamente a assinatura criptográfica e rejeita a solicitação, retornando um código de status HTTP 403 Forbidden.
Para mais informações, consulte URLs assinados.
Lista de permissões com Service Extensions
As extensões de serviço permitem que os desenvolvedores injetem lógica programável personalizada no plano de dados do Cloud CDN. Essa lógica personalizada permite a manipulação avançada de solicitações e a aplicação de segurança antes que o recurso de otimização de imagem processe a solicitação.
As extensões de serviço permitem analisar a string de consulta imop e comparar os parâmetros dela com uma lista de permissões fixa. Por exemplo, ela só pode permitir larguras responsivas predefinidas, 200, 400 ou 800.
O exemplo a seguir demonstra como uma solicitação não autorizada tenta ignorar o cache de borda e como o Service Extensions processa essas solicitações:
Um cliente solicita um tamanho de imagem não padrão e não armazenado em cache:
image.jpg?imop=Resize,width=401Service Extensions interceptam a solicitação na borda do Cloud CDN. Elas analisam a string de consulta para extrair o
transformation parameter: width=401.Service Extensions compara
401com os breakpoints de design responsivo predefinidos:Lista de permissões:
200,400,800Ao detectar que
401não está na lista de permissões, as extensões de serviço encerram imediatamente a solicitação e retornam um erro HTTP 403 (Proibido) ou removem os parâmetros para exibir a imagem original.
A solicitação não é processada, o que evita o esgotamento da computação de borda.
Para mais informações, consulte Service Extensions.