안수찬 블로그

HTTPS 페이지에서는 HTTP IFRAME을 사용할 수 없습니다.

Introduction

안수찬 @dobestan

서울대학교에서 컴퓨터공학을 전공하고, 오랜 기간 서비스 기획 및 개발을 해 왔습니다. 이러한 전문성을 인정받아 미래부 소프트웨어 마에스트로에 선정된 바 있습니다. 현재는 모바일 방송국, 퍼스트캔버스에서 컨텐츠로 새로운 가치를 그리고 있습니다. 나는 안수찬이다. 그러므로 나는 할 수 있다. me@ansuchan.com


HTTPS 페이지에서는 HTTP IFRAME을 사용할 수 없습니다.

Posted by 안수찬 @dobestan on .
Featured

HTTPS 페이지에서는 HTTP IFRAME을 사용할 수 없습니다.

Posted by 안수찬 @dobestan on .

패스트트랙아시아 웹개발 강의자료를 만들던 중에 jsfiddle을 이용하여 소스코드와 그 결과를 첨부할 일이 있었다. 분명히 예전에는 iframe으로 페이지에 삽입하면 정상적으로 동작했었는데 jsfiddle을 포함한 대부분의 ( SSL 인증서를 사용하지 않는 모든 사이트들의 ) iframe이 동작하지 않았다. 그 이유를 살펴보았다.

최근에 블로그를 SSL 인증서를 사용해서 강제적으로 모든 사용자가 https를 사용하도록 변경했다. 이는 간단하게 말하면 "공인된 SSL 인증서를 통해서 모든 정보 전달을 암호화하도록 강제한다" 라고 표현할 수 있다. 하지만 이런 문제가 발생하면 어떻게 될까?

내 블로그는 암호화되어 있다. 블로그 포스트에는 iframe을 다음과 같이 사용한다 :

<iframe src="http://someGoodSites.com/login.php"></iframe>  

여기서 문제가 되는 부분이 있다. 내 블로그에서 정보를 전달하는 부분은 SSL 인증서를 통해서 확실히 암호화되고 있고 보호되고 있다는 것을 확신한다. 하지만 someGoodSites.com을 통해서 전달되는 정보는 어떨까? 당연히 SSL 인증서를 사용하지 않기 때문에 암호화되지 않는다. 지금은 큰 문제가 없어 보일 수도 있다. 하지만 악의적인 개발자가 iframe을 이렇게 변경하면 어떨까?

<iframe src="http://someBadSites.com/badLogin.php"></iframe>  

블로그 방문자는 위의 영롱한 https를 보고 안심하겠지만 실제로 iframe을 통해서 전달되는 정보는 암호화되지도 않으며 보호받지 않는다.

그래서 이러한 문제를 방지하게 위해서 브라우저 자체에서 https sites 내에 삽입되어 있는 iframe 차단한다. 차단의 기준은 다음과 같다고 한다.

page - iframe - status  
----------------------
http    http    allowed  
http    https   allowed  
https   http    not allowed  
https   https   allowed ? ( Need to Confirm )  

어차피 나 혼자 작성하는 블로그이고 삽입되는 iframe들은 모두 소스코드를 위한 gist.github.com, jsfiddle.com 등의 안전한 사이트들이라 블로그는 그대로 https로 사용하기로 결정했다. 블로그에서 iframe을 확인하는 방법은 웹 브라우저 주소표시줄에 있는 Load Unsafe Script를 누르면 된다.

안수찬 @dobestan

https://ansuchan.com/

서울대학교에서 컴퓨터공학을 전공하고, 오랜 기간 서비스 기획 및 개발을 해 왔습니다. 이러한 전문성을 인정받아 미래부 소프트웨어 마에스트로에 선정된 바 있습니다. 현재는 모바일 방송국, 퍼스트캔버스에서 컨텐츠로 새로운 가치를 그리고 있습니다. 나는 안수찬이다. 그러므로 나는 할 수 있다. me@ansuchan.com

View Comments...