Как определить, подключается ли пользователь с распознанного компьютера? - PullRequest
5 голосов
/ 07 февраля 2010

На многих банковских и инвестиционных веб-сайтах сайт запрещает пользователям входить с неопознанного компьютера без предварительного ответа на дополнительный вопрос или активации этого компьютера. Как разработчики обычно создают эту функцию?

Например, вот сообщение, которое Salesforce.com выдает, когда я подключаюсь к своей учетной записи с неопознанной машины:

Activate Required image, computer not recognized

Мы пытаемся сделать то же самое из одного из наших приложений, но не уверены в лучшем (и наиболее безопасном) подходе.

Ответы [ 6 ]

3 голосов
/ 07 февраля 2010

Есть много возможных подходов для этого, но обычно они используют некоторую комбинацию из следующего:

  • Диапазон IP-адресов, с которого вы подключаетесь
  • ваше имя хоста
  • наличие на вашем компьютере файлов cookie, оставленных сайтом после успешной аутентификации
  • строка user-agent

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

2 голосов
/ 08 февраля 2010

Самый безопасный подход, несомненно, заключается в выдаче клиентских сертификатов, и чтобы сервер проверял сертификаты при подключении (убедитесь и используйте список отзыва!). Это требует много административных затрат, но работает.

2 голосов
/ 07 февраля 2010

Electronic Frontier Foundation (EFF) создал демонстрационный веб-сайт, показывающий, как поразительно легко идентифицировать браузер, даже если cookie-файлы отключены или вы подключаетесь с другого IP / провайдера:

Panopticlick: насколько уникален и отслеживаем ваш браузер

Они используют комбинацию

  • Строка агента пользователя
  • заголовки HTTP
  • Установленные плагины браузера
  • Часовой пояс
  • Размер экрана и разрешение цвета
  • Системные шрифты
  • Настройки cookie

Однако типичным сценарием (и, вероятно, сценарием, используемым в вашем примере приложения) будет локальное сохранение файла cookie и идентификация возвращающегося пользователя с помощью этого файла cookie.

2 голосов
/ 07 февраля 2010

Вы можете установить cookie на компьютере пользователя, а затем проверить, существует ли этот cookie и содержит ли оно правильное значение.Если файл cookie не существует, то этот компьютер является новым , в противном случае этот компьютер уже был здесь раньше.

Значение куки может быть случайным хэшем с разными атрибутамипример IP-адреса, пользовательского агента и т.д ...

2 голосов
/ 07 февраля 2010

Нет действительно безопасного подхода, вы могли бы сделать это на основе IP-адреса, но это часто динамично, вы могли бы сделать это с помощью куки, но они далеко не безопасны, вы могли бы сделать это с MAC-адресом, но вы бы нужно использовать Java (IIRC) для доступа к этому, но это опять-таки может быть подделано ...

Нет реального способа проверить, подключался ли когда-либо компьютер, к которому они подключаются, ранее. Вы, вероятно, можете найти "хаки", чтобы сделать это, но это никогда не будет безопасным.

0 голосов
/ 08 февраля 2010

Большинство топовых сайтов используют Flash cookie для отслеживания уникальных посетителей. Флэш-куки похожи на обычные куки-файлы браузера, но не очищаются, когда пользователь переключает браузер или очищает историю браузера.

Прочтите это еще раз: вы можете попытаться очистить свою историю или переключить браузеры, или даже использовать режим Chrome «инкогнито», и Flash-куки все равно будут помнить, кто вы. Они связаны с установкой Flash, а не с браузером.

Wired имеет статью о них здесь: http://www.wired.com/epicenter/2009/08/you-deleted-your-cookies-think-again/

Несмотря на предупреждение Wired о флеш-куки, они сами используют флеш-куки для отслеживания посетителей. Пойди разберись.

В Flash они называются «SharedObjects». Подробнее о том, как их использовать, читайте здесь: Как получить доступ к файлам cookie во Flash?

...