Интернет слезам не верит

Интернет слезам не верит

Как известно, мир, в котором мы живем, далеко не идеален и полон всевозможных изъянов и недоразумений. Часто виной тому являются сами люди, по тем или иным причинам не желающие жить в соответствии с принятыми нормами поведения. Проявляется это практически во всех областях человеческой жизнедеятельности, в том числе и во всемирной информационной сети - Интернете.

Когда стало ясно, что содержание Интернет-ресурса может быть не только вполне безобидным развлечением или хобби, а в состоянии при определенном подходе приносить популярность и деньги его владельцам, последние решили разработать информационную целину, засеять ее web-семенами и периодически собирать сетевой урожай. Разумеется, такие человеческие пороки, как жадность, алчность и жажда славы тоже дали о себе знать и привели к изобретению многочисленных ухищрений, уловок, приемов и средств, помогающих реализации поставленных целей любыми путями - в том числе и обманными.

На сегодняшний день самые распространенные виды сетевого обмана связаны с искусственным повышением количества посетителей веб-ресурсов и получением денег за участие в партнерских программах. Изначально все средства, используемые в вышеупомянутых областях деятельности в Интернете, разрабатывались без всякого злого умысла и предназначались для честной раскрутки и продвижения сетевых ресурсов. Однако, впоследствии нашлись люди, которые решили взять существующие promotion-средства на вооружение своих ресурсов, немного переработав их и направив в русло, весьма далекое от общепринятых этических и эстетических норм и стереотипов. О некоторых таких обманных средствах журнал уже писал в предыдущем номере, но жизнь не стоит на месте, и сетевые обманщики изобретают все новые и новые уловки для одурачивания пользователей Интернета (Прим. автора: во всех последующих кодах в качестве демонстрационного URLа будет использоваться несуществующий адрес http://www.page.ru).

Не верь глазам своим!
Случалось ли вам когда-либо при наведении курсора на текстовую или графическую ссылку видеть в статусной строке вместо URLа обычное слово или словосочетание? Например, ссылка гласит: "Pentium III 750 MHz всего за 100 $!" Многие пользователи не бездумно жмут на все попавшиеся на веб-странице линки, а предварительно сверяют смысл, который несет гиперссылка, с адресом, появляющимся в статусной строке браузера. В данном случае с компьютером за столь смехотворную цену можно увидеть вместо предполагаемого http://www.page.ru/rasprodazha/pentium3.html обычную надпись "Купи себе компьютер!" или что-то в этом роде. Доверчивый пользователь пойдет на поводу у изобретательных веб-мастеров и кликнет по такой ссылке и попадет... нет, вовсе не туда, где раздают почти халявные компьютеры, а, например, на сервер рекламной службы, которая идентифицирует ресурс, с которого вы пришли к ним, по реальной ссылке, которая может выглядеть следующим образом: http://www.page.ru/cgi-bin/partner.cgi?15546.

Реализуется этот прием так:

<html>
<body>
<a href="http://www.page.ru/cgi-bin/partner.cgi?15546" onMouseOut="window.status=''; return true;" onMouseOver="window.status='Купи себе компьютер!'; return true;">Pentium III 750 MHz всего за 100 $!</a>
</body>
</html>

Руки прочь от правой кнопки!
Сегодня уже достаточно много написано о том, что творят участники партнерских программ ради получения собственной выгоды, поэтому некоторые пользователи Интернета, прежде чем куда-либо нажимать, наводят курсор на ссылку, нажимают на правую кнопку мыши и смотрят HTML-код выбранного линка. Но владельцы сайтов-обманщиков тоже не лыком шиты и размещают на нужной странице небольшой JavaScript-код, запрещающий доступ к просмотру HTML-источника:

<html>
<head>
<script language="JavaScript">
document.onmousedown=new Function
("if (event.button==2||event.button==3) alert('Нажимай-нажимай, не бойся:-)')")
</script>
</head>
<body>
<a href="http://www.page.ru/cgi-bin/partner.cgi?15546">Компьютер за 100 $!</a>
</body>
</html>

Совместив этот код с кодом, выводящим в статусной строке не адрес, а любую фразу, можно легко обмануть пользователя.

Однако, вы вероятно воскликнете: "А как же быть с основным меню? Там ведь тоже есть пункт выбора просмотра источника HTML?" Да, конечно, через пункт меню "Вид" браузера можно получить доступ к коду. Но, во-первых, не все пользователи знают, что это возможно, а во-вторых, тех, кто "типа, ваще круто разбирается", тоже можно запутать.

Раз матрешка, два матрешка...
Делается это следующим образом. Создается документ на фреймовой основе:

<html>
<frameset border="0" frameborder="no" framespacing="0" rows="100%, *">
<frame name="main" src="./tupik/tupik.html">
<frame src="about:blank">
</frameset>
</html>

В первое (основное) окно загружается файл tupik.html, находящийся, как видно из кода, в директории tupik, во второе окно загружается... вообщем, ничего туда не загружается (такое происходит при запуске MS Internet Explorer, если в настройках не указан адрес стартовой страницы, и по умолчанию стоит about:blank - абсолютно чистая страница). Если на странице tupik.html поместить скрипт, запрещающий просмотр источника кода, и все-таки его (код) увидеть через основное меню, то можно увидеть вышеуказанный код с фреймами. Умный человек возьмет и введет в адресной строке браузера этот самый tupik.html, дабы потом получить доступ к коду отдельно взятого файла. Вводит и получает... тот же самый документ: с помощью правой кнопки код просмотреть невозможно, а пункт меню "Вид" снова выдает источник фреймовой структуры.

Дело вот в чем. Здесь мы имеем дело с так называемой вложенной фреймовой структурой документа. Суть аналогична процедуре вложения одних таблиц в другие при компоновке веб-страницы: стартовый документ разбит на два (один из низ пустой, второй - с содержанием), вторая страница основного документа состоит в свою очередь еще из двух документов (опять один about:blank, другой - с контентом) и так далее. Таким образом можно создать и 5-ти, и 10-ти и более уровневую иерархию вложения документов, в коде каждого из которых будет присутствовать скрипт, запрещающий просмотр источника HTML. Согласитесь, что после открытия уже третьей составляющей страницы, как две капли воды похожей на две предыдущие (как визуально, так и с точки зрения кода), вам это занятие надоест и вы прекратите всякие попытки узреть таинственный код.

Куда привел меня, Сусанин?!
Следующий прием реализуется посредством технологии CGI (Common Gateway Interface) и применяется практически повсеместно на сайтах, имеющих разрешение на запуск CGI-сценариев. Наверняка вам случалось в каком-нибудь каталоге ресурсов видеть, что открытие соответствующей ссылки осуществляется не путем открытия нового окна или загрузки ресурса в текущее, а посредством программной переадресации. Происходит переадресация (редирект) на стороне веб-сервера, посему как-то предугадать ее поведение пользователю вкупе со своим другом браузером зачастую бывает весьма сложно, а порой вообще невозможно. Здесь существует несколько вариантов извлечения выгоды.

Первый заключается в том, что при нажатии на ссылке открывается новое окно, разделенное на два, а то и несколько фреймов: в одном из них загружается содержание выбранного по гиперссылке ресурса, в другом (других) - многочисленная реклама. Выглядеть такой линк может, например, вот так: http://www.page.ru/cgi-bin/catalog.pl?576 Согласитесь, что такой подход мало кому может понравиться (за исключением, пожалуй, тех, кто так делает:-): во-первых, вы кликаете по ссылке не для того, чтобы смотреть чужую рекламу, а во-вторых, что получится, если запрошенный сайт, загружающийся во второй окне, тоже окажется с фреймовой структурой?

Второй вариант особенно любим обманщиками, ибо позволяет привести пользователя по вполне с виду безобидной ссылке (например, http://www.page.ru/cgi-bin/catalog/auto/auto.pl?ID=1.53) на любой, указанный в настройках CGI-скрипта, адрес. Им может оказаться и реферальный URL, и URL идентификации переходов и др.

А не пошли бы вы?...
Раз уж мы завели речь о переадресации, то не следует ограничиваться редиректом на стороне сервера. JavaScript и простой HTML тоже позволяют перенаправлять пользователя. В HTML редирект реализуется при помощи мета-тегов:

<html>
<head>
<meta http-equiv="refresh" content="0; URL= http://www.page.ru">
</head>
<body>
</body>
</html>

Значение атрибута CONTENT определяется в секундах. То есть, если оно равно нулю, редирект произойдет сразу же после загрузки страницы с данной конструкцией мета-тегов. Значение URL тоже можно подобрать абсолютно любое: адрес рекламной страницы, реферальная ссылка и т.д.

То же самое действие можно реализовать посредством JavaScript:

<script language="JavaScript">
<!--
 if (self.parent.frames.length == 0) self.parent.location="page.html";
// -->
</script>

Нажми кнопочку, окошечко и откроется
Всем хорошо известно, что такое "горячие клавиши". Но оказывается, не всегда они помогают простому пользователю: при необходимости можно поместить в BODY веб-страницы специальный скрипт, который автоматически загружает указанный URL при нажатии пользователем определенной клавиши на клавиатуре. Спрашиваете, как заставить пользователя нажать нужную кнопку? А вы попросите его ввести какую-нибудь информацию в форму или что-нибудь в этом роде:-) И постарайтесь, чтобы в вводимых им данных обязательно присутствовала буква, соответствующая определенной в скрипте "горячей клавише". В приведенном ниже примере в качестве "hotkey" выступает буква J:

<html>
<body>
<script language="JavaScript1.2">
self.focus();
var travel=true
var hotkey=106
var destination="http://www.page.ru"
if (document.layers)
document.captureEvents(Event.KEYPRESS)
function backhome(e){
if (document.layers){
if (e.which==hotkey&&travel)
window.location=destination
}
else if (document.all){
if (event.keyCode==hotkey)
window.location=destination
}
}
document.onkeypress=backhome
</script>
</body>
</html>

Минимум действий - максимум выгоды
В случае применения следущего скрипта первая часть выведенного с заголовок словосочетания будет относиться к пользователю, вторая - к тому, кто этот скрипт разместит на веб-странице:

<html>
<body>
<a href="link" onMouseOver="parent.location='http://www.page.ru'">Текст ссылки</a>
</body>
</html>

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

Не скриптом единым
В заключение хочу сказать, что не следует расценивать данную статью как призыв к применению описанных уловок в обманных целях. Целью материала является не пропаганда жульнических средств получения какой-либо выгоды от вашего веб-ресурса, а предостережение для тех, кто в Интернете еще совсем недавно и может стать легкой добычей опытного, но нечестного веб-мастера.

Интернет слезам не верит
http://pc-inform.ru/articles/secureinweb.html
Алексей Петюшкин