혼합 컨텐츠 경고없이 HTTPS 사이트에서 사용자가 제공 한 이미지


9

대부분의 포럼과 마찬가지로 사용자가 이미지를 게시 할 수있는 포럼이 있습니다. 사이트 전체에 HTTPS를 설정했지만 물론 대부분의 외부 이미지는 HTTPS가 아닌 HTTP를 사용하여 연결됩니다. 따라서 HTTPS를 통해 포럼을로드하면 혼합 된 내용 경고 등이 표시됩니다.

이 문제를 해결하기위한 전략은 무엇입니까? 일부 이미지는 내 사이트에서 가져 왔으므로 작동 할 것이므로 HTTPS를 사용하도록 해당 URL을 다시 작성할 수 있습니다. 그러나 외부 URL의 경우 많은 사람들이 HTTPS와 작동하지 않으므로 담요 재 작성을 수행 할 수 없습니다.

안전하지 않은 이미지를 인라인 이미지 대신 링크로 다시 작성할 수는 있지만보기에는 좋지 않으며 사용자에게는 혼란을 줄 수 있습니다. 더 나은 솔루션이 있습니까?


2
당신은 camo를 사용할 수 있습니다 …
wb9688

2
Google은 이미지 검색을 위해 이것을 해결하지 않았습니다. 이미지 검색은 "안전하지 않습니다": i.imgur.com/8XVTQsi.png
Stephen Ostermiller


1
더 잘 모르겠습니다. 저작권법에 위배 될 수 있지만 기술적 인 해결책 중 하나 는 이미지를 복사하여 자신이 관리하는 도메인에서 HTTPS를 통해 서비스를 제공하는 것입니다.
CVn

1
나쁜 방법 : 저장 / 편집시 논리를 적용 src="http://someimage.jpg"하여 상대적으로 구조화 된 모든 데이터를 다시 src="//someimage.jpg"쓰거나 유효성을 검사 할 수 있습니다. 엄격한 녹색 잠금 (안전하지 않은 이미지가 잠금을 해제하지 않는 경우)을 원하면 HSTS를 시행하십시오. 그런 다음 편집기 인터페이스에서 현재 이미지를 HTTPS를 통해 사용할 수 있어야합니다. 그렇지 않으면 이미지가 전혀 표시되지 않습니다. "죄송합니다. 오류가 발생했습니다. 악용 및 MITM 공격을 방지하려면 모든 미디어가 HTTPS를 사용해야합니다. 돌아가서 수정하거나 다른 이미지 공급자를 선택하십시오."
dhaupin

답변:


1

보안 페이지에 안전하지 않은 리소스가있을 수 없으며 혼합 된 콘텐츠 경고가 표시되지 않습니다.

이를 지원하는 사용자 에이전트의 경우 upgrade-insecure-requests지시문은 https를 통해 자원을로드하려고 시도하거나 시도에 실패하는 지시 사항입니다.

다른 사용자 에이전트는 지시문을 무시하고 안전하지 않은 자원을 계속로드합니다.

다음은이 옵션 및 기타 옵션에 대해 설명하는 Google 개발자 사이트의 기사입니다.


1

방금 솔루션을 게시하지 않았다는 것을 깨달았습니다. 대답 스티븐의 코멘트에서 제공하는 나를 위해 그것을 해결하는 것이다. 간단히 말해 다음을 수행하는 프록시 스크립트를 작성했습니다.

  1. 이미지가 https 인 경우 그대로 두십시오.
  2. 이미지가 http이고 https를 지원하는 것으로 알려진 사이트 (예 : 내 사이트, imgur.com 등) 인 경우 https로 다시 씁니다.
  3. 그렇지 않으면 이미지가 http 인 경우 이미지를 다시 작성하여 사용하십시오 http://example.com/imgproxy?img=ORIGINALURL&hash=KEY

그런 다음 프록시 스크립트는 HTTP 이미지를 가져 와서 로컬로 캐시하고 이미지 데이터를 출력합니다. 반복되는 요청에서 캐시 된 데이터를 직접 출력합니다. 연결된 SO 답변은 보안 해시 및 기타 세부 사항을 설명합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.