За последние 24 часа нас посетили 73303 программиста и 1652 робота. Сейчас ищут 1040 программистов ...

Безопасная авторизация

Тема в разделе "PHP для новичков", создана пользователем san4ez, 13 июн 2017.

  1. san4ez

    san4ez Активный пользователь

    С нами с:
    13 авг 2016
    Сообщения:
    331
    Симпатии:
    47
    Добрый день. Правильно ли я хочу сделать авторизацию через куки:
    При первой авторизации создаем некий токен, который записываем в бд + в куки. Так же записываем в сессию id пользователя;
    При следующей авторизации, после очищения сессии (закрытия браузера), проверяем куки, если есть - сравниваем с токеном из бд, и если совпадают, записываем в сессию id пользователя.
    Правильно ли я хочу сделать? И безопасно ли это?
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Плюс-минус, как-то так оно, в общем-то и работает. Насчет безопасности...ну разве что можно не некий токен хранить на клиенте, а, к примеру, хэш некоего токена с прицепленным хотя бы юзер-агентом. В идеале, конечно, с IP или еще каким идентификатором более менее уникальным, но увы, об эту штуку будет биться головой любая прокся, да и динамические IP у подавляющего большинства.

    Но не суть. Храни некий хэш, в общем. А сам токен - в базу. Потом, как юзер зайдет, берешь у него куку, юзерагент, токен из базы, смешиваешь и хэшишь токен с юзерагентом, сравниваешь с кукой.

    У куки можно выставить httponly. Какая-никакая, а защита от кражи через JS.
    Еще, если у тебя https поднят, можно включить secured cookies.
     
    san4ez нравится это.
  3. san4ez

    san4ez Активный пользователь

    С нами с:
    13 авг 2016
    Сообщения:
    331
    Симпатии:
    47
    Спасибо
     
  4. san4ez

    san4ez Активный пользователь

    С нами с:
    13 авг 2016
    Сообщения:
    331
    Симпатии:
    47
    а разве, в таком случае, не будет слетать авторизация при обновлении допустим браузера?
     
  5. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    А тут все просто - безопасность и удобство это взаимоисключающие вещи. Либо безопасно. Либо удобно. Либо компромисс. Либо компромисс с перекосом в одну из сторон в ущерб другой. Выбирай, что для тебя важнее и допустимее.
     
    san4ez нравится это.
  6. san4ez

    san4ez Активный пользователь

    С нами с:
    13 авг 2016
    Сообщения:
    331
    Симпатии:
    47
    подумаю, спасибо =)