Как реализовать собственную аутентификацию\авторизацию для сайта?

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

Есть сайт. Клиент написан на angular.js а сервер на node.js. Для авторизации клиент передает на сервер логин и пароль. В ответе от сервера при успешной авторизации приходит md5 hash, назовем его access token. Этот токен хранится на сервере в redis в сессии пользователя. На клиенте токен сохраняется в localstorage.

Все последующие запросы идут с access token в заголовке с id пользователя. Да, еще у токена есть время жизни, если оно истекает то пользователь должен опять отправить логин и пароль для авторизации.

Все запросы идут через https. Какие есть дыры в такой реализации?
  • Вопрос задан
  • 3452 просмотра
Пригласить эксперта
Ответы на вопрос 2
maxaon
@maxaon
Основных проблемы две:
1. Как генерируется токен, хранится и удаляется. Есть ли привязка к IP и др.
2. Угон токена через xss или другим способом, поскольку можно напрямую его читать. Наиболее рациональным подходом будет хранить в куки с флагом httponly. Для параноидальности еще можно разбить токен на две части. Одна в куке, другая отправляется вручную в запросе/заголовке.

Но еще лучше использовать http digest аутентификацию.
Ответ написан
Hostwell
@Hostwell
Элементарно
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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