Сведения о вопросе

Martincow

04:50, 1st October, 2020

Теги

Идентифицировать пользователя на сайте по запущенной программе (не факт, что на том же компьютере)?

Просмотров: 338   Ответов: 8

Задумался вот над такой загадкой. А возможно ли идентифицировать пользователя на сайте (заметьте, не аутентифицировать, а просто узнать кто это) ничего у него не спрашивая? Использовать можно Javascript AJAX, PHP, установленные программы на сервере и на компьютере клиента.


Т.е. есть, скажем, 10 человек. У них запущены клиенты, подключенные к серверу. Они заходят на сайт и кликают кнопку и клиент показывает надпись «You clicked!» только тому пользователю, который действительно только что кликнул эту кнопку.


Поначалу, я думал заставить пользователя вводить e-mail. Но ведь кто-то может ввести чужой e-mail и таким образом сообщение увидит не тот. Затем пришла в голову мысль сравнить IP клиента, подключенного к серверу и IP пользователя, зашедшего на сайт. Но возникает вопрос: а будут ли гарантированно эти адреса совпадать? Ответ нет, т.к. на сайт можно прийти под прокси, а клиент может не использовать прокси (или вообще быть запущенным на телефоне — такое тоже допускается, но допустимо затребовать указывать это при регистрации).


Так вот такая загадка хабросообществу: возможно ли вообще максимально простым пользователю способом (т.е. не обязывая его помнить пароль) узнать какой из запущенных клиентов принадлежит ему и вывести туда сообщение, без ложного вывода у других пользователей системы?



  Сведения об ответе

baggs

15:32, 27th September, 2020

Ваша программа пусть запускает свой вебсервер (очень лёгкий), который слушает порт, скажем 19999. После нажатия на кнопку джаваскрипт пусть туда шлёт запрос через AJAX/IFRAME.

Похожим образом, как я понимаю, клиент от WebMoney работает.


  Сведения об ответе

lats

18:59, 27th September, 2020

Ну кагбе с большой долей вероятности можно использовать флэш-куки. Устанавливать «клиентом» при коннекте, а в браузере читать через специабельные флешку и jsку.\

*не уверен в своем мозге, ибо болею гриппом и встал только таблеточку выпить. А тут интернеты опять…


  Сведения об ответе

davran

13:00, 25th September, 2020

Да привязывайте по IP, вероятность того что ip совпадет у двух одновременно подключенных пользователей не велика, конечно если это сервис с посредственным количеством посетителей.

Та же можно брать хеш от IP + разрешение монитора(этот параметр легко получить как через javaScript так и софтом который установлен на машине пользователя)

Еще можно сделать что б программа при установке ставила на все браузеры нужный кукис с уникальным идентификатором.


  Сведения об ответе

park

21:23, 30th September, 2020

Думается в это время (2.30 по Украине) уже плохо:), но первый, пришедший в голову вариант — плагин для браузера(который к примеру забирает идентификатор сессии из клиента и отдает его сайту). Работать это конечно будет только при условии, что клиент и браузер открыты в одной среде.


  Сведения об ответе

screen

15:10, 30th September, 2020

Конкретнее:

должно работать в популярных браузерах: Firefox, Opera, Chrome, Safari, IE — т.е. без плагинов (их ведь ставить еще эти плагины надо, а пользователь существо ленивое) и без встраивания браузера в клиент.
Клиент — это постоянно запущенная программка, ожидающая, пока ее пользователь ткнет на кнопку на сайте. Запущен может быть как с телефона, так и с компьютера (но не одновременно (либо одновременно с указанием приоритета))
Серверная часть это тандем из серверного приложения, PHP и mySQL.
Ну и кнопка на сайте может быть чем угодно реализована, что способно послать запрос на PHP.
Вся эта связка может пересылать любую информацию в любом напрвлении (в рамках технологий конечно).


  Сведения об ответе

PROGA

11:02, 30th September, 2020

Для телефона нереализуемо без двух одновременных сессий. С вводом пароля как в браузере, так и в клиенте.

Для компа реализовать можно двумя способами:
-сниффить трафик, соответственно получать сессию.
-прописывать в hosts при запуске 127.0.0.1 needed.host, а клиент заставить транслировать все запросы и ответы.

У обоих способов куча проблем и недостатков. Использовать такие решения можно только если вы абсолютно уверены, что хотите ходить на костылях.

Если же нет, то только так же, как в телефоне — вводы паролей и там, и там.


  Сведения об ответе

lourence

23:25, 25th September, 2020

Если пользователей планируется чуть больше, чем немного, можно посмотреть сюда:
panopticlick.eff.org/
Вполне возможно что такой информации окажется более чем достаточно.

(решение понятное дело не со 100% гарантией)


  Сведения об ответе

LAST

02:38, 28th September, 2020

Можно зарегистрировать свой протокол типа skype:// и обработчиком сделать свою программу.
На сайте же сделать ссылку.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться