초기 HTML이 안전한 HTTPS 연결을 통해 로드되지만 다른 리소스 (예: 이미지, 동영상, 스타일시트, 스크립트)가 안전하지 않은 HTTP 연결을 통해 로드되는 경우 페이지에 혼합 콘텐츠가 있습니다. 이 이름은 단일 페이지에 HTTP 및 HTTPS 콘텐츠가 혼합되어 있음을 나타냅니다.
안전하지 않은 HTTP 프로토콜을 사용하여 하위 리소스를 요청하면 페이지의 보안이 약화됩니다. 이러한 요청은 공격자가 네트워크 연결을 도청하고 두 당사자 간의 통신을 보거나 수정하는 경로 공격에 취약하기 때문입니다. 이러한 리소스를 사용하면 공격자가 사용자를 추적하고 웹사이트의 콘텐츠를 대체할 수 있으며, 활성 혼합 콘텐츠의 경우 안전하지 않은 리소스뿐만 아니라 페이지 전체를 완전히 제어할 수 있습니다.
많은 브라우저가 사용자에게 혼합 콘텐츠 경고를 보고하지만, 경고가 너무 늦게 전송되는 경우가 많습니다. 비보안 요청이 이미 실행되고 페이지의 보안이 손상된 후이기 때문입니다.
이제 대부분의 브라우저는 보안상의 이유로 혼합 콘텐츠를 차단합니다. 페이지가 계속 올바르게 로드되도록 안전하지 않은 콘텐츠 요청을 안전한 콘텐츠로 변경하세요.
혼합 콘텐츠의 두 가지 유형
혼합 콘텐츠에는 능동적 콘텐츠와 수동적 콘텐츠의 두 가지 유형이 있습니다.
이미지, 동영상, 오디오를 비롯한 수동 혼합 콘텐츠는 페이지의 나머지 부분과 상호작용하지 않으므로 중간자 공격이 이러한 콘텐츠를 가로채거나 변경하는 경우 할 수 있는 작업이 제한됩니다.
활성 혼합 콘텐츠는 페이지 전체와 상호작용합니다. 여기에는 스크립트, 스타일시트, iframe, 브라우저에서 다운로드하고 실행할 수 있는 기타 모든 코드가 포함됩니다. 활성 혼합 콘텐츠에 대한 공격을 통해 공격자는 페이지에 거의 모든 작업을 할 수 있습니다.
패시브 혼합 콘텐츠
수동 혼합 콘텐츠는 활성 혼합 콘텐츠보다 위험성이 낮지만 여전히 위험이 있습니다. 예를 들어 공격자는 다음을 수행할 수 있습니다.
- 사이트의 이미지에 대한 HTTP 요청을 가로채고 이러한 이미지를 교체하거나 대체합니다.
- 사용자가 버튼을 혼동하여 저장하려는 콘텐츠를 삭제하도록 버튼의 이미지를 교체합니다.
- 이미지를 포르노 콘텐츠로 대체하여 사이트를 훼손합니다.
- 제품 이미지를 다른 제품의 광고로 대체합니다.
공격자가 사이트의 콘텐츠를 변경하지 않더라도 혼합된 콘텐츠 요청을 통해 사용자를 추적할 수 있습니다. 또한 브라우저에서 로드하는 이미지나 기타 리소스를 기반으로 사용자가 방문한 페이지와 조회한 제품을 파악할 수 있습니다.
수동 혼합 콘텐츠가 있는 경우 대부분의 브라우저는 페이지 자체가 HTTPS를 통해 로드되더라도 주소 표시줄에 페이지가 안전하지 않다고 표시합니다. 이 데모에서 이 동작을 확인할 수 있습니다.
최근까지는 수동 혼합 콘텐츠를 차단하면 많은 웹사이트가 손상될 수 있으므로 모든 브라우저에 수동 혼합 콘텐츠가 로드되었습니다. 이제 이러한 상황이 바뀌기 시작했으므로 사이트에서 혼합 콘텐츠가 있는 경우 모두 업데이트해야 합니다.
경우에 따라 Chrome에서 수동 혼합 콘텐츠를 자동으로 업그레이드합니다. 즉, 애셋이 HTTP로 하드코딩되었지만 HTTPS를 통해 사용할 수 있는 경우 브라우저는 HTTPS 버전을 로드합니다. 보안 버전이 없으면 애셋이 로드되지 않습니다.
Chrome에서 혼합 콘텐츠를 감지하거나 수동 혼합 콘텐츠를 자동으로 업그레이드할 때마다 DevTools의 문제 탭에 자세한 메시지를 로깅하여 특정 문제 해결에 관한 안내를 제공합니다.

활성 혼합 콘텐츠
활성 혼합 콘텐츠는 수동 혼합 콘텐츠보다 더 큰 위협이 됩니다. 공격자는 활성 콘텐츠를 가로채고 재작성하여 이를 사용하여 페이지 또는 전체 웹사이트를 완전히 제어할 수 있습니다. 이를 통해 다른 콘텐츠 표시, 사용자 비밀번호 또는 기타 로그인 사용자 인증 정보 도용, 사용자 세션 쿠키 도용, 사용자를 완전히 다른 사이트로 리디렉션 등 페이지의 모든 측면을 변경할 수 있습니다.
활성 혼합 콘텐츠의 위험이 매우 높기 때문에 대부분의 브라우저는 이미 사용자를 보호하기 위해 기본적으로 이러한 유형의 콘텐츠를 차단하지만 브라우저 공급업체와 버전 간에 동작이 다릅니다.
이 데모에서는 활성 혼합 콘텐츠의 예를 보여줍니다. HTTP를 통해 예시를 로드하여 HTTPS를 통해 예시를 로드할 때 차단되는 콘텐츠를 확인합니다. 차단된 콘텐츠는 DevTools의 Issues 탭에도 자세히 설명되어 있습니다.

혼합 콘텐츠 사양
브라우저는 선택적으로 차단 가능한 콘텐츠 및 차단 가능한 콘텐츠 카테고리를 정의하는 혼합 콘텐츠 사양을 따릅니다.
'혼합 콘텐츠로 사용을 허용하는 위험이 웹의 상당 부분을 중단할 위험보다 클 때' 리소스는 선택적으로 차단 가능한 콘텐츠로 간주됩니다. 수동 혼합 콘텐츠의 하위 집합입니다.
선택적으로 차단할 수 없는 모든 혼합 콘텐츠는 차단 가능으로 간주되며 브라우저에서 차단해야 합니다.
최근 몇 년 동안 HTTPS 사용이 급증하여 웹에서 명확한 기본값이 되었습니다. 이제 브라우저가 혼합 콘텐츠 사양에 선택적으로 차단 가능으로 정의된 하위 리소스 유형을 포함한 모든 혼합 콘텐츠를 차단하는 것이 더 가능해졌습니다.
이전 브라우저
일부 방문자는 이전 브라우저를 사용할 수 있습니다. 공급업체의 브라우저 버전에 따라 혼합 콘텐츠가 다르게 처리됩니다. 최악의 경우 이전 브라우저와 버전에서는 혼합 콘텐츠를 전혀 차단하지 않으므로 사용자에게 안전하지 않습니다.
모든 리소스를 안전하게 로드하고 혼합 콘텐츠 문제를 해결하면 콘텐츠가 표시되고 이전 브라우저에서 차단하지 않을 수 있는 위험한 콘텐츠로부터 사용자를 보호할 수 있습니다.