ВЕБ-ШПИОНСТВО - добываем инфу о юзере Леха ББ 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 способа. А если можно, то как. |