Shanraq.org Shanraq.org
Кому что разрешено: принцип наименьших прав
Общество

Информатика: создаём своего цифрового помощника Урок 57 из 72

Кому что разрешено: принцип наименьших прав

Библиотека даёт читателю книгу, а сотруднику право изменять каталог.

Где мы на карте

Урок 57 из 72. Блок «Цифровая безопасность» (55–62). Мы продолжаем локального помощника с тремя вымышленными задачами. Каждая мера имеет конкретную границу: учебная версия не становится готовым публичным сервисом.

Кому что разрешено: принцип наименьших прав

Ситуация и вопрос

Библиотека даёт читателю книгу, а сотруднику право изменять каталог. Если выдать читателю права сотрудника, случайная кнопка может испортить записи. Так же разделим чтение и запись в помощнике.

Новые слова без пропусков

Аутентификация отвечает «кто пришёл?», авторизация — «что ему разрешено?». Роль собирает разрешения. Принцип наименьших прав даёт только необходимые действия и только на нужное время. Только чтение — запрет изменения через этот путь; это свойство конкретного подключения, а не абсолютная защита файла.

Опорный сигнал

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

Разбираем шаг за шагом

Откройте data_store.py: connect_readonly использует SQLite mode=ro; страница читает задачи через него. Команда init отдельно создаёт новую БД, а повторный запуск не заменяет старую. Составьте матрицу: страница — читать, резервирование — читать источник и создавать новый файл копии, восстановление — создавать новый файл назначения. Ни одна операция не должна молча перезаписывать рабочую базу. Убедитесь, что POST веб-страницы отвечает отказом.

Предскажите и проверьте

Запишите ожидаемый вывод до запуска кода. Выполните его в указанной папке step-06 или step-07, сравните результат символ за символом и объясните каждую строку. Затем измените один безопасный вымышленный вход и повторите цикл «предсказать — запустить — изменить — объяснить — проверить». Наблюдение на маленьком наборе не превращайте в обещание для реальных людей.

from pathlib import Path
text = Path("data_store.py").read_text()
print("mode=ro" in text, "destination.exists()" in text)

Ожидаемый вывод

True True

Поймайте ошибку

Если другой процесс имеет права ОС на запись файла, read-only подключение страницы не мешает ему менять БД. Не называйте учебный сервер системой с аккаунтами: там нет входа, ролей пользователей и защищённого удалённого доступа.

Изменение проекта

В проекте 1.3 сохраняются исходные три задачи, четыре занятия и правила напоминаний. Новые действия вынесены в security_assistant.py: проверка, создание отдельной копии и восстановление только в новый файл. Запишите, от какой угрозы помогает это изменение и от какой не помогает; учебные данные остаются вымышленными.

Задание и доказательство

Нарисуйте матрицу «операция × разрешение». Объясните, почему доступ к чтению отчёта не должен автоматически давать право удалить базу. Проверьте отказ повторного init.

Перенос в новую ситуацию

Школьный чат требует редакторов и читателей. Какие действия каждому нужны и как отозвать доступ без общего пароля?

Возврат через 1, 7 и 30 дней

Через 1 день нарисуйте схему по памяти и найдите в ней одну границу применения. Через 7 дней объясните её товарищу, не читая урок, и решите 7 из 10 вопросов блока; ошибочные ответы разберите на конкретных входах. Через 30 дней откройте свежую копию проекта, воспроизведите проверку и перенесите принцип в новый пример. Сохраните свой протокол с входом, ожидаемым и фактическим результатом.

Первоисточник для проверки

Официальный документ

Следующий урок

Фишинг, давление и дипфейк

Если вы нашли ошибку или опечатку в тексте статьи, то сообщите нам об этом

Проверить доказательство проекта

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

Чтобы проверить, нужно войти. Войти

Комментарии (0)

Пока нет комментариев. Будьте первым.