Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Фильтрация посетителей при помощи flash. (http://www.flasher.ru/forum/showthread.php?t=151491)

sltrdn 28.02.2011 19:04

Фильтрация посетителей при помощи flash.
 
В данный момент изучаю возможность получить возможность в достаточной мере точно идентифицировать посетителей при помощи флэша, используя actionscript.

Почитал разные сайты. Нашел некоторую интересную информацию.

Может кому-то тоже будет интересно поэкспериментировать в этой области?

Что нам нужно. Нам нужно при помощи ActionScript получить достаточно уникальную информацию о компьютере посетителя. В тоже время параметры должны быть не слишком явными и в достаточной мере неизменяемыми во времени. Вот этот вопрос и предлагаю обсудить. Вопрос реализации посыла посетителей лесом обсуждать не будем.

Пока остановился на таком варианте. Но я только в начале пути.

Код AS1/AS2:

var my_date:Date = new Date();
var user_fonts = TextField.getFontList();
trace(user_fonts.join()+System.capabilities.os+System.capabilities.language+my_date.getTimezoneOffset());
var m:md5 = new md5();
trace( m.hash(user_fonts.join()+System.capabilities.os+System.capabilities.language+my_date.getTimezoneOffset()));

Надеюсь тема будет интересной не мне одному.

Предлагаю обсудить те или иные параметры системы и возможность их использования для идентификации посетителей. Как использовать полученную уникальную строку каждый решит сам. Это в принципе достаточно просто. Можно просто getURL("http://iditelesom.ru"); использовать. Здесь обсуждаем возможность получить уникальную строку на основе информации доступной через action script 2.0.

P.S. надеюсь содержание темы в этот раз соответствует заголовку.

P.P.S. про SharedObject в курсе, но его использование ничего не гарантирует и данный метод достаточно очевиден.

Hauts 28.02.2011 19:25

А если у меня три декомпилятора под рукой? :)

sltrdn 28.02.2011 19:37

Я ее обфускатором обработаю. Но вопрос не в этом. Вопрос в получении уникальной строки. Защита кода в другой теме обсуждается :).

Hauts 28.02.2011 19:40

Обфускатор — не панацея.

Если вопрос в получении уникальной строки — можно примешать еще разрешение экрана и версию фп.

А еще можно воспользоваться ExternalInterface и сохранить какую-нибудь версию браузера, например.

sltrdn 28.02.2011 19:46

Про ExternalInterface я тоже в курсе. Пока пробую чисто на actionscript все сделать, чтобы попроще было. Браузер можно хапнуть из строки UserAgent при обращении к скрипту. Разрешение экрана тоже неплохо. Версия плеера не самый лучший вариант. Обновляют достаточно часто, уж больно много эксплоитов под него появляется. UserAgent кстати тоже может меняться достаточно часто. Браузеры часто обновляются. К тому же человек может разные браузеры использовать.

Hauts 28.02.2011 19:59

Список шрифтов тогда тоже не катит.

sltrdn 28.02.2011 20:09

Может быть ты и прав. Надо тестить. Я просто не в курсе того насколько близкой к константе является информация о шрифтах. Я думаю это еще зависит от того для чего используется компьютер, ну и кем естественно.
Попробуй сюда сходить. Там как раз можно пройти тестик на уникальность браузера. Правда подход более комплексный.
http://panopticlick.eff.org/

Есть еще вариант с сокетами, но у меня что-то не вышло воспроизвести.

Hauts 28.02.2011 20:14

Самый главный вопрос — зачем?

mooncar 28.02.2011 20:15

С помощью свойств, предоставляемых чистым AS, как тут выяснилось, кроме ОС, всё может довольно легко меняться, какие-либо гарантии вообще исключены. (даже не упоминя о случае совпадения наборов свойств у разных пользователей).
Многие используют разные браузеры, время от времени садятся за разные мониторы, обновляют ОС и прочий софт.
Цитата:

Сообщение от sltrdn (Сообщение 976986)
изучаю возможность получить возможность в достаточной мере точно идентифицировать посетителей при помощи флэша, используя actionscript.

Каковы критерии достаточности? Ваши цели вам виднее, но когда вы планируете отмести этот вариант и рассмотреть обычные методы - браузерные куки, логины и пароли, сессии?

sltrdn 28.02.2011 20:42

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

Шрифты + ось + временная зона + язык системы в принципе очень даже неплохо. Можно добавить разрешение экрана, но это достаточно распространенная величина. Для повышения уникальности строки в принципе сойдет. Есть еще какие-то предложения по параметрам которые можно было бы использовать. Нужны именно те которые меняются как можно реже. Я не спец во flash программировании, может упускаю какие-то более редкие/неочевидные переменные?

В этой теме http://www.flasher.ru/forum/showthread.php?t=151406 я приводил код с использованием сокетов. Работает, если используется не сокс прокси.
Но строчка
Код AS1/AS2:

var _loc3 = doc.firstChild.firstChild.nodeValue;

у меня лично ничего не возвращает.

rainbowrussia 28.02.2011 22:12

Цитата:

Сообщение от sltrdn (Сообщение 977026)
Пароли тоже не подходят. Страницу должны видеть все, но весь функционал работает только у тех кому разрешено.

Почему не подходят пароли? Допустим есть естраница /index.pl (показывает страницу в зависимости от наличия действительно авторизационной куки) и скрипт, ссылки на который нет в публичном доступе - /admin.pl, который авторизует по логину и паролю из базы через устаноку куки. Если число лиц с полным функционалом невелико и им можно раздать пароли и адрес авторизационной страницы. Просто иначе вы сначала будете искать уникальные параметры для составления строки, а потом (ИМХО) будете думать - какие бы параметры исключить, чтобы "авторизация не слетала", а далее все по-новой.
Конечно сложно что-то более конкретное подсказать, так как задача неясна, и, видимо, секретна.

sltrdn 28.02.2011 22:24

Задача простая и не секретная :)

Есть страница на которой размещена некоторая информация. Она должна быть доступна для любого посетителя. Пароли я раздавать не могу каждому. Регистрировать тоже никого нет охоты. Это не форум. К нам приходит посетитель которому не желательно отдавать информацию. Мы его засекаем и баним по уникальной строке генерируемой баннером. Он не в курсе что к чему. Он только понимает что ему не дают того что он хочет. И начинает использовать анонимайзеры, прокси и тому подобные вещи. На другой комп он не переходит, использует всегда один и тот же. Баннер будет генерировать одну и туже строку независимо от прокси. И этот посетитель не сможет пройти, пока не догадается в чем дело. Как-то так. Куки не вариант, потрет ведь.

rainbowrussia 28.02.2011 23:36

Цель понятна... а определять круг пользователей, которых будете банить будете по какому-то действию этого пользователя на сайте?
Если такой пользователь готов пойти искать анонимайзер - думаю его мало что остановит. Если что-то дельное придет в голову - напишу.

sltrdn 01.03.2011 00:26

По логам не проблема его вычислить. Пока небольшая проблема с баном. Я думаю решу этот вопрос. Если что поделюсь информацией.

Добавлено через 66 часов 24 минуты
Итак, начался этап активного тестирования.
Взял выборку по посетителям одной из страниц. Получилось пока 40 уникальных посещений.
Все имеют уникальный ID созданный по алгоритму описанному выше.

sltrdn 19.03.2011 21:43

В принципе все работает очень даже нормально. Возникла только одна проблемка.
У некоторых посетителей при формировании строки что-то идет не так. Строка получает значение undefined. Причем на разных осях и в разных браузерах. Я у посетителей спросить не могу. У меня нет контакта с ними. Может будут какие-то предположения по этому поводу?

После выполнения следующего кода у некоторых юзеров вылезает undefined. У большинства все работает нормально. Случаи с undefined единичные, но все равно неприятно. Ясно только одно: браузер не причем. Косяки с flash?

Код AS1/AS2:

var m:md5 = new md5();
trace( m.hash(user_fonts.join()+System.capabilities.os+System.capabilities.language+my_date.getTimezoneOffset()));



Часовой пояс GMT +4, время: 13:31.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.