혼합 콘텐츠란 무엇인가요?

초기 HTML이 보안 HTTPS 연결을 통해 로드되지만 다른 리소스 (예: 이미지, 동영상, 스타일시트, 스크립트)는 보안이 취약한 HTTP 연결을 통해 로드되는 경우 페이지에 혼합 콘텐츠가 있는 것입니다. 이 이름은 단일 페이지의 HTTP 및 HTTPS 콘텐츠 혼합을 의미합니다.

보안되지 않은 HTTP 프로토콜을 사용하여 하위 리소스를 요청하면 이러한 요청이 공격자가 네트워크 연결을 도청하고 두 당사자 간의 통신을 보거나 수정하는 경로 공격에 취약하기 때문에 페이지의 보안이 약화됩니다. 공격자는 이러한 리소스를 사용하여 사용자를 추적하고 웹사이트의 콘텐츠를 대체할 수 있으며, 활성 혼합 콘텐츠의 경우 보안이 취약한 리소스뿐만 아니라 페이지를 완전히 제어할 수 있습니다.

많은 브라우저가 사용자에게 혼합 콘텐츠 경고를 보고하지만 보고가 너무 늦은 경우가 많습니다. 비보안 요청이 이미 실행되어 페이지의 보안이 손상되었기 때문입니다.

이제 대부분의 브라우저에서 보안상의 이유로 혼합 콘텐츠를 차단합니다. 페이지가 계속 올바르게 로드되도록 보안 콘텐츠에 대한 요청으로 안전하지 않은 콘텐츠 요청을 변경하세요.

두 가지 유형의 혼합 콘텐츠

혼합 콘텐츠에는 활성 콘텐츠와 수동 콘텐츠의 두 가지 유형이 있습니다.

이미지, 동영상, 오디오를 비롯한 수동 혼합 콘텐츠는 페이지의 나머지 부분과 상호작용하지 않으므로 중간자 공격이 콘텐츠를 가로채거나 변경하는 경우 할 수 있는 작업이 제한됩니다.

활성 혼합 콘텐츠는 페이지 전체와 상호작용합니다. 여기에는 브라우저가 다운로드하고 실행할 수 있는 스크립트, 스타일시트, iframe, 기타 코드가 포함됩니다. 활성 혼합 콘텐츠에 대한 공격을 통해 공격자는 페이지에 거의 모든 작업을 할 수 있습니다.

수동 혼합 콘텐츠

수동 혼합 콘텐츠는 활성 혼합 콘텐츠보다 위험이 적지만 위험이 여전히 존재합니다. 예를 들어 공격자는 다음 작업을 할 수 있습니다.

  • 사이트의 이미지에 대한 HTTP 요청을 가로채고 해당 이미지를 바꾸거나 교체합니다.
  • 사용자가 혼동하여 저장하려는 콘텐츠를 삭제하는 등 버튼의 이미지를 바꿉니다.
  • 이미지를 포르노 콘텐츠로 바꿔 사이트를 훼손합니다.
  • 제품 이미지를 다른 광고로 대체합니다.

공격자가 사이트의 콘텐츠를 변경하지 않더라도 혼합 콘텐츠 요청을 통해 사용자를 추적할 수 있습니다. 또한 브라우저에서 로드하는 이미지나 기타 리소스를 기반으로 사용자가 방문하는 페이지와 사용자가 보는 제품을 알 수 있습니다.

소극적 혼합 콘텐츠가 있으면 페이지 자체가 HTTPS를 통해 로드되더라도 대부분의 브라우저에서 주소 표시줄에 페이지가 안전하지 않다고 표시합니다. 이 데모에서 이 동작을 확인할 수 있습니다.

최근까지 수동 혼합 콘텐츠는 모든 브라우저에서 로드되었습니다. 이를 차단하면 많은 웹사이트가 작동하지 않았기 때문입니다. 이제 이러한 상황이 바뀌기 시작했으므로 사이트의 혼합 콘텐츠 인스턴스를 업데이트하는 것이 중요합니다.

경우에 따라 Chrome에서 수동 혼합 콘텐츠를 자동으로 업그레이드합니다. 즉, 애셋이 HTTP로 하드 코딩되었지만 HTTPS를 통해 사용할 수 있는 경우 브라우저에서 HTTPS 버전을 로드합니다. 보안 버전이 없으면 애셋이 로드되지 않습니다.

Chrome에서 혼합 콘텐츠를 감지하거나 수동 혼합 콘텐츠를 자동 업그레이드할 때마다 특정 문제를 해결하는 방법을 안내하기 위해 DevTools의 문제 탭에 자세한 메시지를 기록합니다.

Chrome DevTools의 문제 탭에는 특정 혼합 콘텐츠 문제와 해결 방법에 관한 자세한 정보가 표시됩니다.
각 보안되지 않은 리소스는 제한 상태와 함께 DevTools에 나열됩니다.

활성 혼합 콘텐츠

활성 혼합 콘텐츠는 수동 혼합 콘텐츠보다 더 큰 위협을 야기합니다. 공격자는 활성 콘텐츠를 가로채서 다시 작성하여 페이지 또는 전체 웹사이트를 완전히 제어할 수 있습니다. 이를 통해 다른 콘텐츠를 표시하거나, 사용자 비밀번호 또는 기타 로그인 사용자 인증 정보를 도용하거나, 사용자 세션 쿠키를 도용하거나, 사용자를 완전히 다른 사이트로 리디렉션하는 등 페이지의 모든 측면을 변경할 수 있습니다.

활성 혼합 콘텐츠의 위험이 매우 높기 때문에 대부분의 브라우저는 이미 사용자를 보호하기 위해 기본적으로 이 유형의 콘텐츠를 차단하지만 브라우저 공급업체와 버전에 따라 동작이 다릅니다.

데모에서는 활성 혼합 콘텐츠의 예를 보여줍니다. HTTP를 통해 예시를 로드하여 HTTPS를 통해 예시를 로드할 때 차단되는 콘텐츠를 확인합니다. 차단된 콘텐츠는 DevTools의 문제 탭에도 자세히 표시됩니다.

Chrome DevTools의 문제 탭에는 특정 혼합 콘텐츠 문제와 해결 방법에 관한 자세한 정보가 표시됩니다.
사이트의 보안을 강화하기 위해 안전하지 않은 일부 리소스가 차단됩니다.

혼합 콘텐츠 사양

브라우저는 혼합 콘텐츠 사양을 따르며, 이 사양은 선택적으로 차단 가능한 콘텐츠차단 가능한 콘텐츠 카테고리를 정의합니다.

'혼합 콘텐츠로 사용을 허용할 때의 위험이 웹의 상당 부분을 손상시킬 위험보다 큰 경우' 리소스는 선택적으로 차단 가능한 콘텐츠로 간주됩니다. 이는 수동 혼합 콘텐츠의 하위 집합입니다.

선택적으로 차단 가능하지 않은 모든 혼합 콘텐츠는 차단 가능한 것으로 간주되며 브라우저에서 차단해야 합니다.

최근 몇 년 동안 HTTPS 사용이 급격히 증가했으며 웹에서 명확한 기본값이 되었습니다. 이제 브라우저가 혼합 콘텐츠 사양선택적으로 차단 가능으로 정의된 하위 리소스 유형을 포함한 모든 혼합 콘텐츠를 차단하는 것이 더 실현 가능해졌습니다.

이전 브라우저

일부 방문자는 오래된 브라우저를 사용할 수 있습니다. 혼합 콘텐츠는 공급업체별로 다른 브라우저 버전에서 다르게 처리됩니다. 최악의 경우 이전 브라우저와 버전에서는 혼합 콘텐츠를 전혀 차단하지 않아 사용자에게 안전하지 않습니다.

모든 리소스를 안전하게 로드하고 혼합 콘텐츠 문제를 해결하면 콘텐츠가 표시되고 이전 브라우저에서 차단하지 않을 수 있는 위험한 콘텐츠로부터 사용자를 보호할 수 있습니다.