Imagens contribuídas pelo usuário em um site HTTPS sem avisos de conteúdo misto


9

Eu tenho um fórum em que, como a maioria dos fóruns, os usuários podem postar imagens. Eu configurei o HTTPS no site, mas é claro que a maioria das imagens externas é vinculada usando HTTP, não HTTPS. Portanto, carregar o fórum por HTTPS mostra avisos de conteúdo misto, etc.

Quais são algumas estratégias para enfrentar esse problema? Algumas imagens são do meu próprio site, para que eu possa reescrever esses URLs para usar HTTPS, pois sei que funcionará. Mas, para URLs externos, muitos não funcionam com HTTPS, portanto, não posso reescrever um conjunto.

Eu poderia reescrever imagens não seguras em links em vez de imagens embutidas, mas isso não parece ótimo e pode ser confuso para os usuários. Alguma solução melhor?


2
Você poderia usar camo ...
wb9688

2
O Google não resolveu isso para pesquisa de imagens. A pesquisa de imagens "não é segura": i.imgur.com/8XVTQsi.png
Stephen Ostermiller


11
Melhor eu não sei, e isso pode colidir com a legislação de direitos autorais, mas uma solução técnica seria fazer uma cópia da imagem e servir a partir de um domínio sob seu controle, sobre HTTPS ...
um CVn

11
O modo pobre do homem: Ao salvar / editar, você pode aplicar a lógica para reescrever todos os dados que se destinam a serem src="http://someimage.jpg"relativos ao parente estruturado src="//someimage.jpg"... ou apenas validá-los. Se você deseja uma trava verde estrita (onde uma imagem insegura não troque sua trava), imponha o HSTS. Em seguida, na interface do editor, observe que as imagens atualmente devem estar disponíveis via HTTPS; caso contrário, elas não aparecerão. Algo como "Ops, você cometeu um erro. Para evitar abuso e ataques MITM, todas as mídias devem usar HTTPS. Volte e corrija-o ou escolha outro fornecedor de imagens".
precisa saber é o seguinte

Respostas:



1

Acabei de perceber que nunca publiquei minha solução. A resposta fornecida no comentário de Stephen é o que a resolveu para mim. Em resumo, criei um script proxy que faz o seguinte:

  1. Se a imagem for https, deixe-a em paz.
  2. Se a imagem for http e de um site conhecido por suportar https (por exemplo, meu próprio site, imgur.com etc.), reescreva para https.
  3. Caso contrário, se a imagem for http, reescreva-a para usar http://example.com/imgproxy?img=ORIGINALURL&hash=KEY

Em seguida, o script proxy busca a imagem HTTP, a armazena em cache localmente e gera os dados da imagem. Em solicitações repetidas, ele gera os dados em cache diretamente. A resposta SO vinculada descreve o hash de segurança e outros detalhes.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.