▶ Iframe 태그
iframe은 중첩해서 브라우저를 넣을 수 있는 태그로 현재 문서 안에 다른 HTML 페이지를 삽입할 수 있는 태그이다. 예를 들면, 다음과 같은 iframe 태그를 삽입해서 지도를 아래와 같이 넣을 수 있다.
<iframe id="inlineFrameExample" title="Inline Frame Example" width="300" height="200" src="https://www.openstreetmap.org/export/embed.html?bbox=-0.004017949104309083%2C51.47612752641776%2C0.00030577182769775396%2C51.478569861898606&layer=mapnik"> </iframe> |
삽입된 브라우저의 Browsing context는 각자 자신만의 History와 Document를 가진다. 부모를 가지지 않는 최상위 Browsing context는 브라우저 창으로서, window 객체로 나타난다.
▶ Iframe 의 sandbox 속성
HTML5에서 'sandbox'라는 속성이 새로 추가되었는데, sandbox 속성은 iframe 요소에 보일 콘텐츠에 대한 추가적인 제한사항(restrictions)들의 집합을 명시한다. sandbox 속성의 값은 모든 제한 사항을 적용하기 위해 비워놓거나(sandbox), 특정 제한 사항만을 해제하기 위해 미리 정의해놓은 값들을 공백 문자(space)로 결합하여 사용할 수도 있다. 속성값들의 목록은 다음과 같다.
속성값 | 설명 |
(empty) | 모든 제한사항을 적용함 |
allow-forms | 리소스(resource)가 폼 데이터를 제출할 수 있도록 허용 |
allow-modals | 리소스가 모달 윈도우(modal window)를 열 수 있도록 허용 |
allow-orientation-lock | 리소스가 화면 방향 전환을 잠글 수 있도록 허용 |
allow-pointer-lock | 리소스가 Pointer Lock API를 사용할 수 있도록 허용 |
allow-popups | window.open()이나 target="_blank",showModalDialog() 등 팝업(popup)을 허용함 |
allow-popups-to-escape-sandbox | 모든 제한 사항이 적용된 문서(sandboxed document)에서 새로운 창(window)을 열 때 제한사항을 상속받지 않은 창을 열 수 있도록 허용함. |
allow-presentation | 리소스가 프레젠테이션 세션(presentation section)을 시작할 수 있도록 허용함. |
allow-same-origin | 리소스가 same-origin policy를 통과된 것처럼 취급될 수 있도록 허용함. |
allow-scripts | 리소스가 스크립트를 실행할 수 있도록 허용하지만, 팝업창은 생성하지 못함. |
allow-storage-access-by-user-activation | 리소스가 Storage Access API를 사용하여 상위 스토리지 기능에 접근 요청을 할 수 있도록 허용함. |
allow-top-navigation | 리소스가 최상위 브라우징 컨텍스트(_top)를 탐색할 수 있도록 허용함 |
allow-top-navigation-by-user-activation | 리소스가 사용자의 요청이 있을 때만 최상위 브라우징 컨텍스트(_top)를 탐색할 수 있도록 허용함. |
▶ Iframe 의 referrerpolicy 속성
Referer 헤더는 HTTP요청을 하면, 요청한 출처나 URL을 헤더에 담아 전달할 때, 해당 헤더에 요청한 출처 또는 URL을 뜻한다. Referer을 통해 접근한 출처를 알 수 있는 유익한 정보이나 자칫 잘못하면 치명적인 정보 누출을 초래할 수 있다. 이 때문에 해당 위험요소를 막기위해서 Referer policy 가 존재한다. html의 meta 태그로도 설정할 수 있지만, iframe의 경우 referrerpolicy 속성으로 설정할 수 있다.
속성값 | 설명 |
no-referrer | referrer 정보 전송하지 않음 |
no-referrer-when-downgrade | 디폴트값. https없는 origin은 referrer 헤더값을 보내지 않는다. |
origin | 모든 경우 referer로 문서의 origin만 보내도록 설정한다. |
origin-when-cross-origin | origin,path,query string 전부 same-origin일 때 보내고, 다른 경우에는 origin만 전송한다. |
same-origin | same-site origin의 경우 referrer가 전송되고, cross-origin의 경우에는 referrer정보를 보내지 않는다. |
strict-origin | 같은 protocol 보안 level에서는 (HTTPS/HTTPS) referrer로 문서의 origin만 보내지만, 더 낮은 보안에는 (HTTPS/HTTP) 보내지 않는다. |
strict-origin-when-cross-origin | same-origin request를 다룰 때, origin, path, querystring 정보를 보내고, 같은 protocol 보안 level에서는 (HTTPS/HTTPS) origin만 보내고, 더 낮은 보안 level (HTTPS/HTTP)은 헤더없이 보낸다. |
unsafe-url | referrer에 origin과 path를 포함한다(fragment, password, username은 포함하지 않는다.). TLS 보호 resource에서 안전하지 않은 origin으로 origin과 path를 포함하기 때문에 안전하지 않다. |
출처 : https://developer.mozilla.org/ko/docs/Web/HTML/Element/iframe#attr-referrerpolicy
https://www.geeksforgeeks.org/html-iframe-referrerpolicy-attribute/
'IT' 카테고리의 다른 글
Assembly x86-64 연습 (0) | 2023.03.27 |
---|---|
정규표현식(Regex, Regular expression) (1) | 2023.01.04 |
File Magic Number, File Signature (1) | 2022.12.22 |
[네트워크] IP주소 체계 (0) | 2022.11.08 |
[네트워크] ARP(Address Resolution Protocol)와 홉바이홉 통신 (0) | 2022.11.07 |
댓글