1. Пример
распределения прав:
Роль Student:
- Просмотр
собственных оценок: разрешён.
- Выставление
оценок: запрещено.
- Управление
учётными записями: запрещено.
Роль Teacher:
- Просмотр
собственных оценок как студента: не предусмотрен.
- Выставление
оценок своим студентам: разрешено.
- Управление
учётными записями: запрещено.
Роль Admin:
- Просмотр
собственных оценок как студента: не предусмотрен.
- Выставление
оценок: запрещено.
- Управление
учётными записями: разрешено.
Объяснение:
Каждая роль
получает только необходимые разрешения.
Такой подход
соответствует принципу минимальных привилегий.
В реальном
приложении разрешения должны дополнительно учитывать конкретный ресурс и
контекст операции.
2. Пример
проверки длины пароля:
JavaScript-код:
const password =
"abc123";
if
(password.length < 8) {
console.log("Пароль слишком
короткий");
} else {
console.log("Длина пароля
подходит");
}
Результат:
Пароль слишком
короткий
Объяснение:
Свойство length
возвращает количество символов строки.
Указанный пароль
содержит 6 символов, поэтому условие выполняется.
Это только
проверка длины. В реальном приложении также необходима серверная проверка, а
пароли должны храниться с использованием специализированного адаптивного
хеширования.
3. Правила
безопасной эксплуатации:
Ситуация 1:
Пользователь
открывает сайт через HTTP.
Решение:
Использовать
HTTPS для защиты передаваемых данных.
Ситуация 2:
Секретный ключ
записан в исходном коде.
Решение:
Использовать
безопасное хранение секретов, например специализированное хранилище секретов
или защищённую конфигурацию.
Ситуация 3:
Приложение
использует устаревшие библиотеки.
Решение:
Регулярно
проверять и обновлять зависимости приложения.
Ситуация 4:
База данных не
имеет резервной копии.
Решение:
Настроить
регулярное резервное копирование и проверять возможность восстановления данных.
Результат:
Для каждой
ситуации выбрана мера, снижающая соответствующий риск безопасности.