К основному содержимому
whalio
▶

Видео этого урока скоро появится

Конспект урока доступен ниже

Урок 4 из 817 мин

Авторизация: вход, сессии, личный кабинет

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

Конспект урока

  1. 1

    Один способ входа для начала

    Выбери что-то одно: ссылку на почту, пароль или вход через сторонний сервис. Второй способ добавляется потом за час, а три сразу удваивают количество ошибок.

  2. 2

    Защита на сервере, не в интерфейсе

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

  3. 3

    У каждой записи есть владелец

    Все запросы фильтруются по текущему пользователю. Это самая частая дыра в самодельных кабинетах: чужие данные открываются подстановкой номера в адресе.

  4. 4

    Кабинет без излишеств

    Профиль, список своих объектов, выход из аккаунта. Этого достаточно, чтобы человек почувствовал себя внутри продукта, остальное после первых пользователей.

  5. 5

    Неудобные сценарии руками

    Неверный пароль, истёкшая сессия, вход с двух устройств, попытка открыть чужую запись по прямой ссылке. Пройди каждый лично и посмотри, что видит человек.

  6. 6

    Секреты только на сервере

    Ключи провайдера входа живут в переменных окружения. Попадание такого ключа в код страницы означает чужой доступ ко всем аккаунтам.

Практика

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

Сделал? Отметь урок пройденным и переходи дальше