Framekiller

Framekiller

Framekiller (также называемый framebuster и framebreaker) это код JavaScript не позволяющий отобразить веб-страницу внутри фрейма. Этот код эффективен для того чтобы не позволить встроить свою страницу в чужой документ.

Обычно используют такой вариант кода:

<script type="text/javascript">
 if (top != self) top.location.replace(self.location.href);
</script>

Этот код успешно используется огромным количеством веб-мастеров по всему миру, однако имеет и некоторые недостатки

Анти-framekiller’ы

Приведенный выше код можно обезвредить при помощи JavaScript соединяющегося с сервером который отвечает ошибкой HTTP/1.1 204 No Content. Этот код следует разместить в главном документе. Он работает потому, что большинство браузеров в ответ на 204 ошибку HTTP ничего не делают, то есть оставляют загруженной нашу страницу.

var prevent_bust = 0;
 window.onbeforeunload = function() { prevent_bust++ };
 setInterval(function() {
  if (prevent_bust > 0) {  
    prevent_bust -= 2;     
    window.top.location = 'http://server-which-responds-with-204.com';
  }
}, 1);

Другое решение

Другое решение состоит в том, чтобы дать пользователю решить, остановить ли работу скрипта.

var framekiller = true;
window.onbeforeunload = function() { 
  if(framekiller) {
    return "...";  // Сообщение пользователю
  }
};

а этот код должен быть изменен так, чтобы вместо my_frame был id целевого фрейма

document.getElementById("my_frame").onload = function() { 
  framekiller = false;
};

Кроме того

В 2010 году была опубликована следующая красивая версия кода:

<style> html{display : none ; } </style>
<script>
   if( self == top ) {
       document.documentElement.style.display = 'block' ; 
   } else {
       top.location = self.location ; 
   }
</script>

Ее можно обойти, меняя стили с помощью своего кода.


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Полезное


Смотреть что такое "Framekiller" в других словарях:

  • Framekiller — or frame buster is a term commonly used for a piece of JavaScript code that doesn t allow a Web page to be displayed within a frame. A frame is a subdivision of a Web browser window and can act like a smaller window, as described in Web site… …   Wikipedia

  • Framekiller — Ein Framekiller ist JavaScript oder HTML Code, der die Anzeige von Webseiten in Frames verhindert. Ein Frame ist eine Unterteilung innerhalb eines Browserfensters und verhält sich gewissermaßen wie ein eigenständiges Browserfenster. Es ist damit… …   Deutsch Wikipedia

  • Clickjacking — is a malicious technique of tricking Web users into revealing confidential information or taking control of their computer while clicking on seemingly innocuous web pages.[1][2][3][4] A vulnerability across a variety of browsers and platforms, a… …   Wikipedia

  • Framing (World Wide Web) — HTML HTML and HTML5 Dynamic HTML XHTML XHTML Mobile Profile and C HTML Canvas element Character encodings Document Object Model Font family HTML editor HTML element HTML Frames HTML5 video …   Wikipedia

  • NoScript — For the <noscript> HTML element, see HTML element#Other block elements. NoScript Developer(s) Giorgio Maone Stable release 2.1.8 / October 28, 2011; 10 days ago …   Wikipedia

  • Frame (HTML) — Übersicht Ein Frame ist ein Teilbereich einer HTML Seite, in dem eine andere HTML Seite dargestellt werden kann. Das einzelne Segment wird dabei als Frame (dt. Rahmen) bezeichnet, die Definition aller Frames als Frameset. Inhaltsverzeichnis …   Deutsch Wikipedia

  • Фрейм (HTML) — У этого термина существуют и другие значения, см. Фрейм.     HTML …   Википедия

  • Кликджекинг — (Кликджекинг, англ. Clickjacking)  механизм обмана пользователей интернета, при котором злоумышленник может получить доступ к конфиденциальной информации или даже получить доступ к компьютеру пользователя, заманив его на внешне безобидную… …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»