Список вопросов
Как зайти в Даркнет?!
25th January, 01:11
8
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
900
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
952
0
Очень долго работает Update запрос Oracle
27th January, 09:58
916
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
907
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
942
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1727
0
период по дням
25th October, 10:44
3957
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3722
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4614
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4382
0
Помогите пожалуйста решить задачи
24th November, 23:53
6088
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4352
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4400
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Идентифицировать пользователя на сайте по запущенной программе (не факт, что на том же компьютере)?
Просмотров: 340
 
Ответов: 8
Задумался вот над такой загадкой. А возможно ли идентифицировать пользователя на сайте (заметьте, не аутентифицировать, а просто узнать кто это) ничего у него не спрашивая? Использовать можно Javascript AJAX, PHP, установленные программы на сервере и на компьютере клиента.
Т.е. есть, скажем, 10 человек. У них запущены клиенты, подключенные к серверу. Они заходят на сайт и кликают кнопку и клиент показывает надпись «You clicked!» только тому пользователю, который действительно только что кликнул эту кнопку.
Поначалу, я думал заставить пользователя вводить e-mail. Но ведь кто-то может ввести чужой e-mail и таким образом сообщение увидит не тот. Затем пришла в голову мысль сравнить IP клиента, подключенного к серверу и IP пользователя, зашедшего на сайт. Но возникает вопрос: а будут ли гарантированно эти адреса совпадать? Ответ нет, т.к. на сайт можно прийти под прокси, а клиент может не использовать прокси (или вообще быть запущенным на телефоне — такое тоже допускается, но допустимо затребовать указывать это при регистрации).
Так вот такая загадка хабросообществу: возможно ли вообще максимально простым пользователю способом (т.е. не обязывая его помнить пароль) узнать какой из запущенных клиентов принадлежит ему и вывести туда сообщение, без ложного вывода у других пользователей системы?
Да привязывайте по IP, вероятность того что ip совпадет у двух одновременно подключенных пользователей не велика, конечно если это сервис с посредственным количеством посетителей.
Та же можно брать хеш от IP + разрешение монитора(этот параметр легко получить как через javaScript так и софтом который установлен на машине пользователя)
Еще можно сделать что б программа при установке ставила на все браузеры нужный кукис с уникальным идентификатором.
Конкретнее:
должно работать в популярных браузерах: Firefox, Opera, Chrome, Safari, IE — т.е. без плагинов (их ведь ставить еще эти плагины надо, а пользователь существо ленивое) и без встраивания браузера в клиент.
Клиент — это постоянно запущенная программка, ожидающая, пока ее пользователь ткнет на кнопку на сайте. Запущен может быть как с телефона, так и с компьютера (но не одновременно (либо одновременно с указанием приоритета))
Серверная часть это тандем из серверного приложения, PHP и mySQL.
Ну и кнопка на сайте может быть чем угодно реализована, что способно послать запрос на PHP.
Вся эта связка может пересылать любую информацию в любом напрвлении (в рамках технологий конечно).
Для телефона нереализуемо без двух одновременных сессий. С вводом пароля как в браузере, так и в клиенте.
Для компа реализовать можно двумя способами:
-сниффить трафик, соответственно получать сессию.
-прописывать в hosts при запуске 127.0.0.1 needed.host, а клиент заставить транслировать все запросы и ответы.
У обоих способов куча проблем и недостатков. Использовать такие решения можно только если вы абсолютно уверены, что хотите ходить на костылях.
Если же нет, то только так же, как в телефоне — вводы паролей и там, и там.
Если пользователей планируется чуть больше, чем немного, можно посмотреть сюда:
panopticlick.eff.org/
Вполне возможно что такой информации окажется более чем достаточно.
(решение понятное дело не со 100% гарантией)
Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться