카테고리 없음

Youtube Iframe 재생되지 않는 오류 해결방법

웹 개발자 권혁진 2022. 8. 16. 00:21

 

 

진행하고 있는 개인프로젝트에 보안강화를 위해 helmet 모듈을 적용했는데

 

아래처럼 youtube iframe이 재생이 되지 않았다.

youtube iframe이 재생되지 않는다.

 

아무래도 helmet이 적용됨으로써

 

http header에 여러가지가 추가돼서 안되는걸로 예상했었다.

 

csp 옵션을 false로 해도 재생이 되지 않았다.

csp옵션을 비활성화 해도 재생이 안돼서

 

x-frame-options 에 allow-from에 유튜브 도메인을 추가해줘도 안되고

 

따로 csp 에 frame-src로 유튜브 도메인을 추가해줘도 재생이 안되었다.

 

그래서 계속 검색해서 찾아보니

 

Youtube 정책상 referrer를 남기지 않으면 

 

유튜브 iframe 재생이 안된다는 사실을 찾아내었다...

 ( helmet에선 기본 옵션이 noreferrer 이다. )

helmet에선 기본적으로 no-referrer 로 설정하기 때문에 strict-origin 으로 정책을 변경하였다.

unsafe-url로 설정하면 모든 외부 리소스에 referrer를 남기게 되고

origin 은 subpage를 잘라서 도메인만 referrer에 남기게 되고

strict-origin 은 외부 리소스를 불러오는 곳의 도메인이 https일 경우에만 도메인 주소로 referrer를 남긴다.

 

strict-origin으로 설정하자 정상적으로 잘 재생 된다!!

 

오늘의 삽질 끝

 

참고 :

https://stackoverflow.com/questions/51424578/embed-youtube-code-is-not-working-in-html