Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #29, АПРЕЛЬ 2003 г.

ВЕБ-ШПИОНСТВО - добываем инфу о юзере

Леха ББ aka Alexys

Спецвыпуск Xakep, номер #029, стр. 029-034-2


// поддержка Java Script

isjava = (navigator.javaEnabled() ? "Yes" : "No");

// определение глубины цвета

scd=screen.colorDepth;

// текущая просматриваемая страница

page=escape(window.location.href);

// -->

</SCRIPT>

</head>

<body>

<h2>О тебе известно вот что:</h2>

<script>

document.write('кодировка - ' + ch + '<br> броузер - ' + ua + '<br> ось - ' + os + ',<br>разрешение экрана ' + sw + 'x' + sh + '<br> Поддержка Java Script (Yes/No) - ' + isjava + '<br> Глубина цвета (бит) - ' + scd + '<br>а смотришь ты страницу ' + page)

</script>

</body>

</html>

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

Под таким делом можно написать, что это стало известным по причине каких-нибудь вирусов, а спасти от них может только программа, которую можно скачать с сайта. Ниже располагается линка на эту программу, которая будет не антивирусом или файрволлом, а самым обычным трояном. Наверняка не один юзер клюнет на это - скачает и установит троян. А уж как этим воспользоваться, не мне тебя учить.

Определение данных о юзере только с помощью Java Script'а можно применять для таких случаев, когда надо загрузить нужный css-файл в зависимости от разрешения экрана юзера, попросить во всплывающем окне о смене броузера, если сайт оптимизирован под другой, ну и т.п. Но на базе Java Script'а можно вести статистику, но для этого понадобится еще и CGI.

Возможности перла для сбора данных

В отличие от Java Script'а, который является языком броузера, скрипты на Perl'е, как и на любом другом языке для написания CGI-шников, исполняются на сервере. Вроде бы ничего и определить нельзя. Это почти так, но все же вместе с запросом передаются некоторые параметры и на сервер. А их никто не мешает определить. Причем эти данные определятся стопудово - тут не помогут никакие резатели скриптов и аплетов, которыми народ стал пользоваться. Если не будет запроса, то и ответа не будет :). От этого никуда не денешься. Ниже приведу фрагмент скрипта на перле, который определяет некоторые данные о юзере.

print "<h3>Данные о юзере, определенные с помощью CGI</h3>\n";

print "Тип броузера: $ENV{'HTTP_USER_AGENT'}\n";

print "<br>\n";

print "Айпишник обратившегося к скрипту: $ENV{'REMOTE_ADDR'}\n";

У CGI, конечно, поменьше возможностей для определения сведений о юзере. Но такие методы, как использование только Java Script или только CGI, никакой нормальной картины дать не могут - все данные известны только в тот момент, когда юзер обратился к странице. Причем только в момент обращения. Конечно, CGI-шник можно немного продлить и добавить запись в файл 2-х определяемых величин, но это почти никак не поможет. Знание только броузера мало чем поможет.

У каждого из вышеописанных методов есть свои достоинства и недостатки. Java Script может много чего определить, но ничего не может записать. Следовательно, ни о какой статистике речи просто нет. CGI-шный метод может вести статистику, но только слишком она маленькая получается. Сам собой напрашивается вопрос, можно ли совместить эти 2 способа. А если можно, то как.

Назад на стр. 029-034-1  Содержание  Вперед на стр. 029-034-3