<iframe>은 다른 HTML 문서(지도, 영상, 결제 위젯, 또는 신뢰할 수 없는 사용자 콘텐츠)를 페이지 안에 임베드합니다. 임베드된 페이지가 자체 스크립트를 실행할 수 있기 때문에, sandbox attribute는 이를 안전하게 임베드하는 핵심입니다.
html
<iframe>은 다른 HTML 문서(지도, 영상, 결제 위젯, 또는 신뢰할 수 없는 사용자 콘텐츠)를 페이지 안에 임베드합니다. 임베드된 페이지가 자체 스크립트를 실행할 수 있기 때문에, sandbox attribute는 이를 안전하게 임베드하는 핵심입니다.
값이 없는 sandbox는 최대 제한을 적용합니다. 스크립트 없음, form 없음, 팝업 없음, 콘텐츠를 고유 origin으로 취급합니다. 그런 다음 토큰을 나열하여 기능을 선택적으로 다시 활성화합니다.
<iframe sandbox></iframe> <!-- 잠김: 스크립트 비활성화 등 -->
<iframe sandbox="allow-scripts allow-forms allow-popups"></iframe>
흔한 토큰:
allow-scripts — JavaScript를 실행하게 함.allow-forms — form을 제출하게 함.allow-same-origin — 자신의 origin을 유지함(이것이 없으면 null origin이 되어 스토리지/쿠키 차단).allow-popups, allow-modals, allow-top-navigation.보안 참고: allow-scripts와 allow-same-origin을 함께 두면, same-origin인 경우 프레임이 자신의 sandbox를 제거할 수 있습니다. 신뢰할 수 없는 콘텐츠에는 그 조합을 피하십시오.
<iframe
referrerpolicy="no-referrer"
allow="camera 'none'; geolocation 'none'"
></iframe>
iframe은 여러분이 제어하지 못하고 완전히 신뢰해서는 안 되는 서드파티 또는 사용자 생성 콘텐츠를 임베드합니다. sandbox(기본 거부, 필요한 것만 허용)에 referrerpolicy/allow를 더하면 그 콘텐츠를 격리하여, 원치 않는 스크립트 실행, 페이지 내비게이션, 기기 기능 접근을 막을 수 있습니다.
accessibility를 위해 title을, 성능을 위해 loading="lazy"를 추가하십시오.
주니어부터 시니어까지 상세한 답변이 포함된 IT 면접 질문 라이브러리.
후원하기