"Убиваем" фреймы

В интернете существует великое множество проблем, которые, в частности, связаны и с "сайтостроительством". Но, возможно, делая свой сайт, вы не задумывались о такой проблеме, как использование вашего сайта для чьей-то выгоды (естественно, против вашей воли).


What is the frame?

Возможно, многие знают, что такое фрейм. Для тех, кто не знает, попытаюсь довести. Фреймы (англ. frames - кадры) впервые появились в HTML в программе-браузере Netscape Navigator 2.0, они позволяют разбить страницу на независимые окна, выводящие свою информацию. Чем-то кадры даже похожи на таблицы, так как они тоже служат для организации данных на HTML-страницах. Однако, в отличие от таблиц, кадры не только организовывают данные, но и размещают их на экране монитора. Фактически они делят окно браузера на отдельные независимые панели, каждая из которых выводит свой файл. Что-то наподобие мини-браузеров.


В чем, собственно, проблема?

Итак, во фрейм можно выводить любую страницу, где бы она ни находилась. Например, можно сделать так, чтобы в правый кадр грузились какие-либо чужие сайты, в то время как ссылки на них хранились в левом меню. Этим часто пользуются многие ленивые и жадные люди, которые хотят иметь большой сайт с большим количеством посещений и обеспечить себе большой заработок на баннерной рекламе. Также часто крутят обычные счетчики посещений, которые в поисковых машинах увеличивают рейтинг сайта злоумышленника за счет неопытного пользователя. Фактически, их сайты ничего не содержат, кроме ссылок на какой-либо сайт с загрузкой в правый кадр (не обязательно в правый - могут загрузить и в верхний, и в нижний, и в левый). Приходя на такой сайт, посетитель думает получить нормальную информацию, а получает нужный ему сайт в кадре сайта-хитреца. Таким образом хороший сайт теряет свою привлекательность, а обманщик получает ненадолго посетителя, который ходит по меню.


Что делать?

Возникают вопросы. Как защитить свой сайт? Что нужно сделать, чтобы его не смогли загрузить в чьем-то фрейме (использовать "на халяву" Ваш труд)? Можно ли это сделать? Ответ: еще как можно, даже нужно! А реализуется все с помощью обыкновенного JAVA-скрипта, который вы должны вставить в "тело" вашего сайта (есть, конечно, и другие способы, но этот мне кажется более доступным и лучшим; если вы нашли другой способ, то, пожалуйста, присылайте варианты мне по почте: [email protected]):

<script language="JavaScript" type="text/javascript">
setTimeout("Killer()",500);<!-- 500 (0.5 сек) - частота проверки-->
function Killer()
{
 if (self.parent.frames.length!=0)
  if (self.parent.location!=document.location)
   {self.parent.location=document.location};
}
</script>

Что делает скрипт? Раз в полсекунды (вместо 500 можно поставить другое значение) функция проверяет, загружена ли страница в каком-нибудь фрейме. Если загружена, то она просто сбрасывает с себя этот фрейм и занимает всю клиентскую область браузера. При установке данного скрипта на свой сайт учитывайте, что он и ваши фреймы будет убивать, если вы их используете.

Павел ТЕРЕШКОВЕЦ,
[email protected]

Версия для печатиВерсия для печати

Номер: 

31 за 2003 год

Рубрика: 

На заметку
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!