혼합 컨텐츠(Mixed Content)
- Published on
- Published on
HTTPS로 연결한 페이지 안에서 HTTP를 이용해 컨텐츠(이미지, 비디오, css, js 등)를 가져올 때, 이를 혼합 컨텐츠12라고 합니다.
혼합 컨텐츠는 Active와 Passive로 나눌 수 있습니다. 차이점은 man-in-the-middle 공격에 의해 컨텐츠가 변경될 때 위협 수준에 따라 나뉩니다. Passive는 이미지, 오디오, 비디오와 같은 컨텐츠입니다. 이 경우엔 만약 공격을 하더라도 해당 컨텐츠만 바뀔 뿐, 페이지의 다른 부분은 변경하지 못합니다. 하지만 Active는 스크립트, 스타일시트, iframe, fetch() 요청 등을 포함합니다. 이 경우에는 피싱, 악성 사이트로 리디렉션 등 거의 모든 공격으로 이어질 수 있습니다.12
Passive 혼합 컨텐츠의 경우 콘솔에 경고 메시지가 출력됩니다. 만약 브라우저가 자동으로 https URL을 찾을 수 있다면, https를 통해 컨텐츠를 가져오고 메시지를 출력합니다.
반면, Active의 경우는 컨텐츠를 가져오는 것을 막고 경고 메시지를 출력합니다.
해결 방법3은 다음과 같습니다.
- 만약 동일 리소스를
https://
로도 제공한다면, 간단히 이것만 바꿔주어도 됩니다. 일부 브라우저는 이를 자동으로 확인하고 자동으로 바꿔줍니다. - 해당 호스트에서 해당 리소스을
https://
로 제공하지 않는다면,https://
로 동일한 리소스를 제공하는 다른 호스트가 있는지 찾아보고 바꿉니다. - 법적으로 문제가 없다면 해당 리소스를 다운로드 받은 후 내 사이트에 직접 추가합니다.
- 이 모든 것이 불가능하다면, 그 리소스는 내 사이트에서 제외합니다.
Footnotes
"Mixed content". developer.mozilla.org. https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content (accessed Mar. 13, 2021). ↩ ↩2
Jo-el van Bergen and Rachel Andrew. "What is mixed content?". web.dev. https://web.dev/what-is-mixed-content/ (accessed Mar. 13, 2021). ↩ ↩2
Jo-el van Bergen and Rachel Andrew. "Fixing mixed content". web.dev. https://web.dev/fixing-mixed-content/ (accessed Mar. 13, 2021). ↩
"Passive mixed content". passive-mixed-content.glitch.me. https://passive-mixed-content.glitch.me/ (accessed Mar. 13, 2021). ↩
"Active mixed content". passive-mixed-content.glitch.me. https://active-mixed-content.glitch.me/ (accessed Mar. 13, 2021). ↩