iframe 으로 크로스도메인 content 감지하기

조회수 6206회

안녕하세요!

iframe 크로스도메인쪽에 대해 여쭤보고싶습니다

현재 Iframe으로 외부도메인에 있는 본인인증 웹을 가져오는 상황입니다.

본인인증을 완료하면 어떤 빈페이지로 리다이렉트 되는 상황입니다.

이 리다이렉트되는걸 캐치해서 저의 본 페이지 (본인인증을 가지고있는 외부도메인과는 다릅니다.) 에서 콜백으로 처리를 해주고싶은데요.

iframe 의 src를 보니까 리다이렉트를 해도 src가 바뀌지 않더군요.

또한 자바스크립트로 iframe의 content를 가져오거나 보려고 시도를 하면 cross domain 에 걸려 막히는 걸로 알고있고 실제로 해보니 막혔습니다.

iframe의 src가 실시간으로 바뀌지 않는것도 크로스도메인 때문인가요??

또한 이런 iframe의 외부도메인에서 리다이렉트 되는걸 본사이트에서 캐치해서 콜백으로 처리할 방법이 없는지 알고싶습니다!

1 답변

  • 기본적으로 외부도메인에 대한 iframe내의 콘텐트를 가져오는 것은 보안상의 이유로 막았을 텐데요. 상호간에 cross-domain 에 대한 허가 설정이 없다면 안되지 않을까요?

    iframe의 내용이 바뀌는 것을 감지하는 것은 다음과 같이 처리해보세요.

    $("iframe").load(function(){
        // 이 iframe이 내용을 가져오거나 새로고침, 페이지 바뀜등으로 다시 가져올때 호출됩니다.
    });
    

    HTML5에서 cross-domain간의 iframe과 부모간의 통신 방법은 postMessage 라는 함수를 통해서 합니다.

    • iframe안에서 url이 변경되도 iframe의 src는 실시간으로 변하지 않는데 원래 이런것인가요?? 실제 url을 얻으려면 contentWindow의 location.href 를 이용해야 하는데 contentWindow에 접근하려면 크로스도메인이 걸립니다.contentWindow에 접근하지 않고 현재의 url을 얻는 방법이 있을까요?? 김진혁 2016.5.9 19:15
    • cross-domain이면 안될것 같은데요. 가능할 경우, OAuth등의 다양한 웹 인증과정을 중간에 가로챌수도 있어서... 심각한 문제가 될 수도 있습니다. 허대영(소프트웨어융합대학) 2016.5.9 19:49

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)