|

ВЕБ-ШПИОНСТВО - добываем инфу о юзере
Леха ББ 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
|