Получаете что-то уникальное в компьютере пользователя с помощью JavaScript? - PullRequest
7 голосов
/ 05 мая 2011

Вот идея: Если я смогу получить что-то уникальное о компьютере с JavaScript с HTML-страницы (возможно, MAC-адреса), то могу ли я использовать эти данные в качестве еще одной проверки безопасности? Это возможно?

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

Ответы [ 3 ]

5 голосов
/ 05 мая 2011
  • Вы можете попробовать использовать cookie-файл для отслеживания;однако обратите внимание, что такие механизмы считаются временными (например, файлы cookie могут быть удалены).В браузере JavaScript помещен в «песочницу», поэтому у него нет доступа к компонентам за пределами страницы.Также обратите внимание, что любое чувство безопасности, которое вы получите с помощью JavaScript, иллюзорно - скрипт запускается на стороне клиента, где его можно изменить (поэтому невозможно определить, является ли «уникальный» фрагмент данных подлинным или фальшивым) илиотключено в целом.

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

  • Наконец, если вы хотите реальную безопасность, переходите на HTTPS с реальным (НЕ самоподписанным)) серверные сертификаты и клиентские сертификаты - см., например, this для реализации (в этом примере, однако, используются самозаверяющие серверные сертификаты, которые не очень безопасны).Это механизм, который хорошо реализован в самом браузере и предоставляет вам несколько защищенную систему (в комплекте с безопасным хранилищем ключей) для идентификации ваших пользователей (в отличие от принципиально некорректной «безопасности» JS, или полагаясь начитаемые файлы).Да, и ваши данные в зашифрованном виде зашифрованы, это бонус.

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

(Кстати, при использовании SSL данные будут защищены при передаче, и клиент сможет проверить подлинность сервера, это не ваши требования, но они более или менее необходимы, чтобы убедиться, что вы действительно общаетесь с реальным клиентом иреальный сервер)

1 голос
/ 05 мая 2011

JavaScript в веб-браузере выполняется в песочнице и не имеет доступа к базовому оборудованию.Кроме того, MAC-адреса не гарантируются уникальными.

0 голосов
/ 05 мая 2011

Нет. И вам не следует реализовывать безопасность только с помощью JavaScript, поскольку любой компетентный разработчик с Firebug сможет обойти его в кратчайшие сроки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...