STJ
@STJ
Front-end developer

Как сделать авторизацию веб приложения только для одного компьютера?

Есть задача сделать авторизацию веб-приложения и защитить аккаунт от запуска на других компьютерах. Можно было бы написать какую-то десктоп-утилитку для отправки данных железок и привязать их к аккаунту, но заказчик не хочет устанавливать программы.
Подскажите, куда посмотреть , что почитать для решения.
  • Вопрос задан
  • 131 просмотр
Пригласить эксперта
Ответы на вопрос 3
ns174ru
@ns174ru
https://ns174.ru
В таком случае нужно использовать ряд параметров для максимальной защиты, на выбор или все разом:
- ip адрес
- разрешение экрана
- идентификатор браузера
- код из смс
- при входе с другого пользователя с этим же логином/паролем закрывать другие остальные сессии этого аккаунта
Ответ написан
Комментировать
vick
@vick
Пишу на RoR
Рассмотрите возможность авторизации через клиентские сертификаты.
Ответ написан
Комментировать
@marsdenden
Залогинится суперпуперадмином, у которого будет секретная кнопочка, которая в localStorage запишет непонятную абракадабру. Далее логиниться суперпуперзаказчиком вместе с абракадаброй - если абракадабра пришла на сервер вместе с логин-паролем - ОК, иначе - "ой, что-то пошло не так".
Реализовать просто - в форме сделать hidden input, куда при загрузке формы авторизации скриптом записывать localStorage.getItem('supersecretabrakadabra') - если ее на данном компе в хранилище нет, то она и не дойдет до сервера.
Единственный минус такого решения - необходимость логиниться админом. Но идея может развиваться и дальше - к примеру, на сервере в БД юзеров добавить поле "привязан", если поле чистое, то при первом логине заказчика так же прописывается абракадабра в localStorage и передается на сервер, сервер в записывает ее в поле "привязан" и все следующие попытки залогиниться обламывает, если абракадабра не совпадает. Ну а о том, что абракадабра должна генериться каждый раз уникально, говорить, думаю, не стоит.
Дальше - больше. Заказчику можно предоставить две кнопки - "привязать" и "отвязать", первая будет просить сервер привязать к новой абракадабре, вторая - очистить поле "привязан", соответственно разрешить логин с другого устройства. Само собой, кнопка "отвязать" должна присутствовать только в случае уже существующей привязки. Тогда админа сервера для ручной очистки поля "привязан" придется дергать только в случае исключительных ситуаций, к примеру смерти винта на привязанной машине
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы