Видео этого урока скоро появится
Конспект урока доступен ниже
Авторизация: вход, сессии, личный кабинет
Добавишь регистрацию и вход, закроешь внутренние страницы от неавторизованных гостей. Соберёшь личный кабинет, где пользователь видит свои данные. Проверишь неудобные сценарии: неверный пароль, истёкшая сессия, попытка зайти по прямой ссылке.
Конспект урока
- 1
Один способ входа для начала
Выбери что-то одно: ссылку на почту, пароль или вход через сторонний сервис. Второй способ добавляется потом за час, а три сразу удваивают количество ошибок.
- 2
Защита на сервере, не в интерфейсе
Проверка сессии должна стоять на сервере перед выдачей данных. Скрытая кнопка и редирект в браузере не защищают ничего: прямая ссылка обходит их за секунду.
- 3
У каждой записи есть владелец
Все запросы фильтруются по текущему пользователю. Это самая частая дыра в самодельных кабинетах: чужие данные открываются подстановкой номера в адресе.
- 4
Кабинет без излишеств
Профиль, список своих объектов, выход из аккаунта. Этого достаточно, чтобы человек почувствовал себя внутри продукта, остальное после первых пользователей.
- 5
Неудобные сценарии руками
Неверный пароль, истёкшая сессия, вход с двух устройств, попытка открыть чужую запись по прямой ссылке. Пройди каждый лично и посмотри, что видит человек.
- 6
Секреты только на сервере
Ключи провайдера входа живут в переменных окружения. Попадание такого ключа в код страницы означает чужой доступ ко всем аккаунтам.
Практика
Заведи двух пользователей, создай у каждого по записи и попробуй открыть чужую запись по прямой ссылке из второго аккаунта. Добейся, чтобы сервер вернул отказ, а не данные.
Сделал? Отметь урок пройденным и переходи дальше