프레임 킬러
Framekiller프레임 킬러(또는 프레임버스터 또는 프레임브레이커)는 웹 사이트 및 웹 응용 프로그램에서 웹 페이지가 프레임 내에 표시되지 않도록 하기 위해 사용하는 기술입니다.프레임은 웹 브라우저 창의 하위 구분이며 더 작은 창처럼 작동할 수 있습니다.일반적으로 프레임 킬러는 웹 사이트가 프레임셋 내에서 허가 없이 로드되거나 클릭잭킹과 같이 공격으로 로드되는 것을 방지하기 위해 사용됩니다.
실장
Framekiller는 현재 창이 메인창인지 검증하는 JavaScript를 사용하여 구현됩니다.기본적으로 창 렌더링을 차단하고 현재 창이 주 창임을 확인한 후에만 차단을 해제하는 것이 좋습니다.
< >스타일.>html{표시:없음.;}< >/style> < >대본> 한다면 (자신 == 정상) { 문서.문서 요소.스타일..표시 = '블록'; } 또 다른 { 정상.위치 = 자신.위치; } < >/script> 이 접근방식은 Gustav Rydstedt, Elie Burstein, Dan Boneh 및 Collin Jackson에 의해 2010년에 [1]제안되었으며 기존 프레임 버스트 기술의 한계를 우회할 수 있는 기술과 함께 강조했습니다.
대체 솔루션
다른 방법으로 사용자가 Framekiller를 동작시킬지 여부를 결정할 수 있습니다.
변화하다 프레임 킬러 = 거짓의; 윈도.언로드 전 = 기능.() { 한다면 (프레임 킬러) { 돌아가다 "..."; // 사용자의 결정에 도움이 되는 메시지 } }; 프레임 태그 뒤에 다음 코드를 추가해야 합니다.
// 페이지에 있는 프레임의 실제 ID에 따라 "my_frame"을 변경해야 합니다. 문서.요소 취득 기준아이디("my_frame").부하를 하다 = 기능.() { 프레임 킬러 = 진실의; }; 오리지널 프레임 킬러
지금까지 최초의 framekiller 스크립트는 다음과 같이 단순했습니다.
< >대본 유형="텍스트/스크립트 작성"> 한다면 (정상 != 자신) 정상.위치.교체하다(위치); < >/script> 여기서 논리는 페이지를 표시하는 것이지만, 상단 위치가 현재 페이지와 동일한지 확인하고, 그렇지 않은 경우 상단을 전류로 바꿉니다.그러나 이 메서드는 외부 [1]프레임에서 프레임버스터 스크립트의 실행을 차단함으로써 쉽게 우회할 수 있습니다.
Framekiller 제한
클라이언트 측 JavaScript 솔루션은 최종 사용자의 브라우저에 의존하여 자체 보안을 적용합니다.이로 인해 다른 페이지에 페이지를 삽입할 수 없도록 하는 유익하지만 신뢰할 수 없는 수단이 됩니다.다음의 상황에서는, 상기의 스크립트가 무효가 되는 일이 있습니다.
- 사용자 에이전트는 JavaScript를 지원하지 않습니다.
- 사용자 에이전트가 JavaScript를 지원하지만 사용자가 지원을 해제했습니다.
- 사용자 에이전트의 JavaScript 지원에 결함이 있거나 부분적으로 구현되었습니다.
안티프레임킬러
HTML5의 iframe에는샌드박스 속성.[2]속성 값은 iframe 콘텐츠에 대해 허용되는 기능 집합입니다.값이 비어 있거나 설정되지 않은 경우 iframe의 콘텐츠는 JavaScript를 실행하지 않으며 최상위 탐색을 허용하지 않습니다.값의 예외 집합을 공백으로 구분하여 allow-scripts를 지정함으로써 iframe은 JavaScript를 허용하지만 여전히 최상위 수준의 네비게이션은 허용하지 않으며 iframe 내의 프레임 킬러가 비활성화됩니다.
「 」를 참조해 주세요.
- 클릭잭킹 - X-Frame-Options 헤더와 같은 프레임에 내장되지 않도록 하는 보다 정교한 방법을 설명합니다.
레퍼런스
- ^ a b G. Rydstedt; E. Bursztein; D. Boneh; C. Jackson (2010). "Busting Frame Busting: a Study of Clickjacking Vulnerabilities on Popular sites". 3rd Web 2.0 Security and Privacy workshop. IEEE.
- ^ "Archived copy". Archived from the original on 2013-06-06. Retrieved 2014-11-01.
{{cite web}}: CS1 maint: 제목으로 아카이브된 복사(링크)