Какова лучшая логика системы входа в систему php для уникального устройства?

Как насчет Mini-XML? Он легкий, работает с gcc, совместим с ANSI-C ...

http://www.minixml.org/index.php

Согласно к документации, для поиска конкретных узлов было бы так же просто, как:

/* Find the first "a" element */
    node = mxmlFindElement(tree, tree, "a",
                           NULL, NULL,
                           MXML_DESCEND);

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

0
задан Flamur Beqiraj 1 March 2019 в 11:34
поделиться

1 ответ

Это сложный вопрос. Я собираюсь начать с двух альтернативных вариантов, которые вы должны рассмотреть вначале (2FA и короткие сессии), а затем перейти к идентификации оборудования позже в моем ответе.

Другой вариант - использовать уникальное устройство как часть двухфакторной аутентификации (2FA). Используйте номер телефона и отправляйте SMS-сообщение, содержащее несколько случайных цифр, на свой телефон при каждом входе в систему (например, Twilio - достойный сервис для этого, но может стоить довольно дорого, если вы отправляете много SMS-сообщений). Это позволяет кому-либо войти в систему с любого устройства по своему выбору, но у него должно быть соответствующее устройство в его распоряжении. Чтобы ограничить вход в систему одним плавающим устройством, вы можете настроить его таким образом, чтобы для одного аккаунта одновременно разрешался только сеанс. Таким образом, если кому-то еще удастся войти (очень сложно), другое устройство будет выгнано. Привязка учетной записи к выданному компанией телефону и использование SMS означает, что устройство почти наверняка находится в распоряжении человека на момент входа в систему.

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

Отправка кода 2FA по электронной почте и использование Google Authenticator (приложения) - это два дополнительных варианта 2FA, которые не требуют затрат. Я реализую оба из них в программном обеспечении с открытым исходным кодом CubicleSoft Single Sign-On (SSO):

https://github.com/cubiclesoft/sso-server

Я также рекомендую использовать короткий тайм-аут сеанса (например, 5-минутное плавающее окно). Пока вкладка браузера открыта, отправляйте периодическое сердцебиение на сервер, чтобы поддерживать сеанс (или не требовать взаимодействия для поддержания сеанса - это зависит от приложения). Как только все вкладки закрыты, сеанс завершается, что требует от пользователя повторной регистрации. Приведенный выше серверный продукт SSO также поддерживает управление короткими сеансами из коробки. Сочетание механизма 2FA с короткими сеансами снижает вероятность входа нескольких пользователей в одну учетную запись на нескольких устройствах.

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

Однако, если вы ДЕЙСТВИТЕЛЬНО хотите привязать логин к одному устройству, вы должны смотреть в общем направлении «снятие отпечатков в веб-браузере». Отрасли рекламы и аналитики постоянно ищут способы сделать то, что вы описываете, чтобы они могли точно отслеживать человека, путешествующего по сети, не полагаясь на файлы cookie браузера, так что информация отслеживания сохраняется, даже если cookie / localStorage удалены. [1110 ]

Этот веб-сайт упоминает и демонстрирует несколько методов:

https://browserleaks.com/

Еще один вариант - использовать идентификаторы подключенного аппаратного устройства: [1113 ]

http://cubicspot.blogspot.com/2019/01/hardware-fingerprinting-with-web-browser.html

Телефоны и планшеты почти всегда имеют подключенную камеру , Ноутбуки вообще тоже делают. Настольные ПК не могут.

Однако, если вы полагаетесь только на этот или любой другой конкретный API, это то, что, вероятно, изменится / сломается в будущем.

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

0
ответ дан CubicleSoft 1 March 2019 в 11:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: