Segurança

Segurança no Compress Images

Se seu arquivo é enviado, o que o arquivo que você recebe de volta contém e como nos avisar de um problema de segurança.

Sem envio

Seu arquivo é lido no seu navegador. Nenhuma página deste site o envia para nós nem para qualquer outra pessoa, e carregar a página não muda isso: os arquivos da própria página vêm deste site.

Conexões apenas com este site

A política de segurança de conteúdo de cada página deixa os scripts se conectarem apenas ao endereço deste site, então uma página não consegue contatar um servidor externo nem se tentar.

Sem conta e sem cópia

As páginas são arquivos estáticos. Não há login, nem banco de dados, nem cópia do seu arquivo, porque nunca recebemos uma.

Para onde vai seu arquivo

Quando você solta ou escolhe um arquivo na página inicial, seu navegador o lê e o converte em um Web Worker no seu próprio dispositivo. Nada é copiado para o armazenamento deste site: a ferramenta não escreve no IndexedDB, nem no Cache Storage, nem em cookies, e o arquivo não é enviado para nós. A política de privacidade é o único lugar onde isso aparece por inteiro, inclusive o que o provedor de hospedagem vê quando você carrega uma página.

Sem envio não significa sem rede. Carregar a página da ferramenta faz o navegador pedir a este site o HTML dessa página, a folha de estilo dela e os módulos JavaScript que conduzem a ferramenta. Começar uma conversão acrescenta o script do worker e os módulos de codec que aquela conversão precisa, cada um baixado uma vez deste site: o decodificador do formato de entrada, o codificador do formato de saída, e os módulos de redimensionamento ou de otimização de PNG quando a conversão os usa. A primeira conversão em um formato dado é a que o baixa. Uma página que não é a ferramenta carrega apenas o próprio HTML, a própria folha de estilo e os próprios módulos, e nenhum codec. Tudo isso é o endereço do próprio deste site e nada mais: toda requisição que uma página faz, antes de uma conversão, durante ela e depois, é um GET ou um HEAD sem corpo, e nenhuma requisição leva o seu arquivo.

Depois que um módulo foi baixado, a mesma conversão roda de novo com a rede desligada, e essa é a verificação por trás dessa frase. Nada disso depende de você acreditar numa promessa: você pode comprimir uma imagem sem enviá-la e olhar a sua própria aba de rede enquanto isso acontece.

A política de segurança de conteúdo

Toda página é entregue com uma política de segurança de conteúdo que deixa os scripts carregar só deste site e se conectar só a este site: connect-src 'self' blob:. O blob: não é outra origem. Ele é o esquema das URLs de objeto que esta página cria para as suas próprias prévias de antes e depois e para os links de download, e um navegador resolve uma URL dessas dentro da origem que a criou. Isso é mais amplo do que “só esta página pode lê-la”: a URL tem o escopo da origem que a criou e da partição de armazenamento em que o site está, que é a própria partição de armazenamento do navegador, então a restrição vem acompanhada de uma regra de particionamento que este site não controla e não mediu. O que a política estabelece é que um script não tem endereço nenhum para alcançar além deste site: se um tentasse buscar de outra origem ou enviar dados para ela, o navegador bloquearia a conexão antes de ela sair.

O que o arquivo que você recebe de volta carrega

Por padrão a saída não carrega nenhum EXIF: nenhum segmento EXIF em um JPEG, nenhum bloco EXIF em um WebP e nenhum item de metadados em um AVIF ou um PNG. Dados de câmera, de localização e de horário não viajam, portanto, com a imagem que você baixa, que em geral é o que você quer de uma cópia que foi codificada de novo.

O controle de metadados muda isso, com um limite. Marque “Manter metadados EXIF” e o bloco volta em uma saída JPEG, PNG ou WebP, com a orientação escrita como 1 porque os pixels já foram virados para o lado certo. Uma saída AVIF não pode carregar um bloco EXIF aqui, então com AVIF selecionado o controle não tem efeito e a linha diz que os metadados não foram mantidos.

De qualquer jeito, a orientação que sua câmera guardou é aplicada aos pixels, então uma foto tirada na vertical sai na orientação certa. Isso vale para uma entrada JPEG, PNG ou WebP. A exceção é uma entrada AVIF: o bloco EXIF dela não é lido, então um arquivo AVIF que guarda uma rotação é usado como está guardado. Das oito orientações EXIF, as quatro que incluem um quarto de volta, de 5 a 8, também trocam a largura e a altura junto, então uma foto marcada como 6 sai 400 por 600 de um arquivo cujos números dizem 600 por 400. A virada de 180 graus não é uma dessas quatro: ela vira a imagem sem mudar nenhum dos dois números.

O que a ferramenta não pode devolver

A saída é a imagem que você escolheu, decodificada, opcionalmente redimensionada e codificada de novo no formato que você selecionou, com 8 bits por canal no espaço de cores sRGB em que os navegadores trabalham. PNG, WebP e AVIF mantêm a transparência; uma saída JPEG não tem canal alfa, então o que era transparente é achatado sobre o branco. Uma saída JPEG também é gravada de forma progressiva e com seus canais de cor subamostrados, que é o padrão do próprio MozJPEG e não um ajuste que esta ferramenta exponha.

A compressão com perda descarta detalhe, e a ferramenta não restaura nada que não tenha recebido. Um arquivo menor não é automaticamente melhor, e por isso cada linha concluída mostra os dois tamanhos e as duas imagens lado a lado.

Como relatar um problema de segurança

Se você encontrar um problema de segurança, escreva para security@compress-images.online. O arquivo security.txt do site lista o mesmo endereço. Um problema na própria ferramenta vale o mesmo relato, e as duas coisas que mais ajudam são o formato que você escolheu e os ajustes que você usou.