Лабораторная работа VI. Аутентификация, авторизация, роли, сессии и безопасность

Лабораторная работа 6. Аутентификация, авторизация, роли, сессии и безопасность

Аудиторная работа: 3 ак. ч.
Самостоятельная работа: 4 ак. ч.

Цель: реализовать защищенную многопользовательскую систему.

Symfony SecurityBundle предоставляет механизмы users, providers, firewalls, authentication и authorization; правила access_control используются для ограничения доступа к URL. [17]

Задание

  1. Создайте сущность:

User

  1. Поля:

id
email
password
roles
fullName
active
createdAt

  1. email должен быть уникальным.

  2. Настройте password hasher.

  3. Реализуйте регистрацию пользователя.

  4. Реализуйте вход.

  5. Реализуйте выход.

  6. Создайте роли:

ROLE_USER
ROLE_SALES
ROLE_MANAGER
ROLE_ADMIN

  1. Настройте:

ROLE_ADMIN > ROLE_MANAGER > ROLE_SALES > ROLE_USER

  1. Определите доступ:

ROLE_USER:
просмотр собственного профиля

ROLE_SALES:
просмотр клиентов
создание заказов

ROLE_MANAGER:
управление товарами
изменение статуса заказа
изменение скидок

ROLE_ADMIN:
управление пользователями

  1. Настройте access_control.

  2. Реализуйте проверку прав на уровне контроллера.

  3. Создайте:

SalesOrderVoter

  1. Voter должен принимать решения минимум для:

VIEW
EDIT
CHANGE_STATUS
DELETE

  1. Реализуйте страницу:

/profile

  1. Используйте Symfony Session.

  2. В сессии храните:

последний выбранный период dashboard;
последний выбранный фильтр заказов.

  1. Не храните в сессии пароль пользователя.

  2. Добавьте CSRF-защиту к операциям удаления.

  3. Создайте тестовых пользователей всех ролей.

  4. Создайте functional tests:

guest -> /dashboard
ROLE_USER -> admin page
ROLE_SALES -> create order
ROLE_SALES -> delete user
ROLE_MANAGER -> edit product
ROLE_ADMIN -> user management

  1. Проверяйте:

200
302
401/403

в зависимости от сценария.

  1. Создайте:

docs/security/threat-model.md

  1. Опишите минимум восемь угроз:

SQL injection
XSS
CSRF
broken access control
session theft
credential leakage
unsafe file access
information disclosure

  1. Для каждой угрозы укажите:

актив;
угрозу;
возможный сценарий;
защитный механизм;
тест.

Обязательный запрос ИИ-агенту безопасности

Ты — application security engineer.

Проведи threat modeling Symfony-приложения BizFlow.

Приложение содержит:
регистрацию;
login/logout;
сессии;
клиентов;
заказы;
товары;
четыре роли.

Используй подход:
Asset -> Threat -> Attack scenario -> Mitigation -> Verification.

Отдельно проверь broken access control.

После threat model проанализируй security.yaml,
контроллеры и voters текущего проекта.

Обязательный запрос ИИ-тестировщику

Сгенерируй матрицу authorization tests.

Строки:
guest
ROLE_USER
ROLE_SALES
ROLE_MANAGER
ROLE_ADMIN

Столбцы:
dashboard
customers
create order
edit product
change status
delete order
user management

После построения матрицы создай functional tests для каждого запрещенного и разрешенного класса операций.

Самопроверка

php bin/console debug:config security
php bin/phpunit

Критерии приемки

[ ] регистрация работает
[ ] login работает
[ ] logout работает
[ ] пароль хранится только в виде hash
[ ] реализованы четыре роли
[ ] работает access_control
[ ] реализован Voter
[ ] используется Session
[ ] CSRF применяется к изменяющим операциям интерфейса
[ ] authorization tests проходят
[ ] создан threat model
[ ] имеется AI log

Symfony Security включает authentication, authorization, password hashing, user providers и firewalls; Symfony также предоставляет встроенные механизмы защиты форм и сессионных сценариев. [18]

Автор: к.п.н., Румянцев Сергей Александрович, доцент Финансового университета при Правительстве РФ; доцент ОЧУВО Международного инновационного университета; Консалтинг, управление разработкой ПО; системный и бизнес анализ; менеджмент; аналитиз данных; управление ИТ. Телефон для связи +79269444818 (мессенджеры)   Короткая ссылка:

Лабораторная работа 6. Аутентификация, авторизация, роли, сессии и безопасность

Аудиторная работа: 3 ак. ч.
Самостоятельная работа: 4 ак. ч.

Цель: реализовать защищенную многопользовательскую систему.

Symfony SecurityBundle предоставляет механизмы users, providers, firewalls, authentication и authorization; правила access_control используются для ограничения доступа к URL. [17]

Задание

  1. Создайте сущность:

User

  1. Поля:

id
email
password
roles
fullName
active
createdAt

  1. email должен быть уникальным.

  2. Настройте password hasher.

  3. Реализуйте регистрацию пользователя.

  4. Реализуйте вход.

  5. Реализуйте выход.

  6. Создайте роли:

ROLE_USER
ROLE_SALES
ROLE_MANAGER
ROLE_ADMIN

  1. Настройте:

ROLE_ADMIN > ROLE_MANAGER > ROLE_SALES > ROLE_USER

  1. Определите доступ:

ROLE_USER:
просмотр собственного профиля

ROLE_SALES:
просмотр клиентов
создание заказов

ROLE_MANAGER:
управление товарами
изменение статуса заказа
изменение скидок

ROLE_ADMIN:
управление пользователями

  1. Настройте access_control.

  2. Реализуйте проверку прав на уровне контроллера.

  3. Создайте:

SalesOrderVoter

  1. Voter должен принимать решения минимум для:

VIEW
EDIT
CHANGE_STATUS
DELETE

  1. Реализуйте страницу:

/profile

  1. Используйте Symfony Session.

  2. В сессии храните:

последний выбранный период dashboard;
последний выбранный фильтр заказов.

  1. Не храните в сессии пароль пользователя.

  2. Добавьте CSRF-защиту к операциям удаления.

  3. Создайте тестовых пользователей всех ролей.

  4. Создайте functional tests:

guest -> /dashboard
ROLE_USER -> admin page
ROLE_SALES -> create order
ROLE_SALES -> delete user
ROLE_MANAGER -> edit product
ROLE_ADMIN -> user management

  1. Проверяйте:

200
302
401/403

в зависимости от сценария.

  1. Создайте:

docs/security/threat-model.md

  1. Опишите минимум восемь угроз:

SQL injection
XSS
CSRF
broken access control
session theft
credential leakage
unsafe file access
information disclosure

  1. Для каждой угрозы укажите:

актив;
угрозу;
возможный сценарий;
защитный механизм;
тест.

Обязательный запрос ИИ-агенту безопасности

Ты — application security engineer.

Проведи threat modeling Symfony-приложения BizFlow.

Приложение содержит:
регистрацию;
login/logout;
сессии;
клиентов;
заказы;
товары;
четыре роли.

Используй подход:
Asset -> Threat -> Attack scenario -> Mitigation -> Verification.

Отдельно проверь broken access control.

После threat model проанализируй security.yaml,
контроллеры и voters текущего проекта.

Обязательный запрос ИИ-тестировщику

Сгенерируй матрицу authorization tests.

Строки:
guest
ROLE_USER
ROLE_SALES
ROLE_MANAGER
ROLE_ADMIN

Столбцы:
dashboard
customers
create order
edit product
change status
delete order
user management

После построения матрицы создай functional tests для каждого запрещенного и разрешенного класса операций.

Самопроверка

php bin/console debug:config security
php bin/phpunit

Критерии приемки

[ ] регистрация работает
[ ] login работает
[ ] logout работает
[ ] пароль хранится только в виде hash
[ ] реализованы четыре роли
[ ] работает access_control
[ ] реализован Voter
[ ] используется Session
[ ] CSRF применяется к изменяющим операциям интерфейса
[ ] authorization tests проходят
[ ] создан threat model
[ ] имеется AI log

Symfony Security включает authentication, authorization, password hashing, user providers и firewalls; Symfony также предоставляет встроенные механизмы защиты форм и сессионных сценариев. [18]

https://webprogr.ru/~ZAR9k
Короткая ссылка на новость:https://webprogr.ru/~ZAR9k


Последние новости

Лабораторная работа VI. Аутентификация, авторизация, роли, сессии и безопасность

Лабораторная работа 6. Аутентификация, авторизация, роли, сессии и безопасность

Аудиторная работа: 3 ак. ч.
Самостоятельная работа: 4 ак. ч.

Цель: реализовать защищенную многопользовательскую систему.

Symfony SecurityBundle предоставляет механизмы users, providers, firewalls, authentication и authorization; правила access_control используются для ограничения доступа к URL. [17]

Задание

  1. Создайте сущность:

User

  1. Поля:

id
email
password
roles
fullName
active
createdAt

  1. email должен быть уникальным.

  2. Настройте password hasher.

  3. Реализуйте регистрацию пользователя.

  4. Реализуйте вход.

  5. Реализуйте выход.

  6. Создайте роли:

ROLE_USER
ROLE_SALES
ROLE_MANAGER
ROLE_ADMIN

  1. Настройте:

ROLE_ADMIN > ROLE_MANAGER > ROLE_SALES > ROLE_USER

  1. Определите доступ:

ROLE_USER:
просмотр собственного профиля

ROLE_SALES:
просмотр клиентов
создание заказов

ROLE_MANAGER:
управление товарами
изменение статуса заказа
изменение скидок

ROLE_ADMIN:
управление пользователями

  1. Настройте access_control.

  2. Реализуйте проверку прав на уровне контроллера.

  3. Создайте:

SalesOrderVoter

  1. Voter должен принимать решения минимум для:

VIEW
EDIT
CHANGE_STATUS
DELETE

  1. Реализуйте страницу:

/profile

  1. Используйте Symfony Session.

  2. В сессии храните:

последний выбранный период dashboard;
последний выбранный фильтр заказов.

  1. Не храните в сессии пароль пользователя.

  2. Добавьте CSRF-защиту к операциям удаления.

  3. Создайте тестовых пользователей всех ролей.

  4. Создайте functional tests:

guest -> /dashboard
ROLE_USER -> admin page
ROLE_SALES -> create order
ROLE_SALES -> delete user
ROLE_MANAGER -> edit product
ROLE_ADMIN -> user management

  1. Проверяйте:

200
302
401/403

в зависимости от сценария.

  1. Создайте:

docs/security/threat-model.md

  1. Опишите минимум восемь угроз:

SQL injection
XSS
CSRF
broken access control
session theft
credential leakage
unsafe file access
information disclosure

  1. Для каждой угрозы укажите:

актив;
угрозу;
возможный сценарий;
защитный механизм;
тест.

Обязательный запрос ИИ-агенту безопасности

Ты — application security engineer.

Проведи threat modeling Symfony-приложения BizFlow.

Приложение содержит:
регистрацию;
login/logout;
сессии;
клиентов;
заказы;
товары;
четыре роли.

Используй подход:
Asset -> Threat -> Attack scenario -> Mitigation -> Verification.

Отдельно проверь broken access control.

После threat model проанализируй security.yaml,
контроллеры и voters текущего проекта.

Обязательный запрос ИИ-тестировщику

Сгенерируй матрицу authorization tests.

Строки:
guest
ROLE_USER
ROLE_SALES
ROLE_MANAGER
ROLE_ADMIN

Столбцы:
dashboard
customers
create order
edit product
change status
delete order
user management

После построения матрицы создай functional tests для каждого запрещенного и разрешенного класса операций.

Самопроверка

php bin/console debug:config security
php bin/phpunit

Критерии приемки

[ ] регистрация работает
[ ] login работает
[ ] logout работает
[ ] пароль хранится только в виде hash
[ ] реализованы четыре роли
[ ] работает access_control
[ ] реализован Voter
[ ] используется Session
[ ] CSRF применяется к изменяющим операциям интерфейса
[ ] authorization tests проходят
[ ] создан threat model
[ ] имеется AI log

Symfony Security включает authentication, authorization, password hashing, user providers и firewalls; Symfony также предоставляет встроенные механизмы защиты форм и сессионных сценариев. [18]

Рейтинг@Mail.ru