
Информатика: создаём своего цифрового помощника Урок 62 из 72
Выпуск 1.3: защищённый помощник и восстановление
Вы передаёте помощника однокласснику.
Где мы на карте
Урок 62 из 72. Блок «Цифровая безопасность» (55–62). Мы продолжаем локального помощника с тремя вымышленными задачами. Каждая мера имеет конкретную границу: учебная версия не становится готовым публичным сервисом.
Ситуация и вопрос
Вы передаёте помощника однокласснику. Он должен суметь открыть страницу, получить тот же отчёт и восстановить испорченную учебную копию без ваших устных подсказок. Это и есть проверка выпуска 1.3.
Новые слова без пропусков
Контрольная точка — конкретный код, данные, команды и ожидаемый результат. Восстановление возвращает рабочую копию из проверенного экземпляра. План угроз объясняет, от чего защищаем и что остаётся вне защиты. Риск остатка — возможность проблемы после выбранных мер.
Опорный сигнал
Прочитайте три клетки схемы слева направо, затем закройте третью. Назовите вход и действие в каждой клетке; предскажите, чем закончится путь и какой наблюдаемый факт подтвердит ответ. Сравните рисунок с файлом проекта или контрольным примером. Если число на схеме не получается из данных, исправьте схему, а не данные под красивую картинку.
Разбираем шаг за шагом
В папке step-06 выполните python3 data_assistant.py init, затем python3 security_assistant.py verify assistant.db: получите tasks=3 sessions=4. Сделайте резервную копию, восстановите её в новый файл и сравните отчёт 45/0/25. Проверьте веб-страницу на 127.0.0.1: в ней три задачи и прежние статусы REMIND, DONE, NO_DATE. Остановите сервер. База, копия и контрольная сумма не отправляются в репозиторий.
Предскажите и проверьте
Запишите ожидаемый вывод до запуска кода. Выполните его в указанной папке step-06 или step-07, сравните результат символ за символом и объясните каждую строку. Затем измените один безопасный вымышленный вход и повторите цикл «предсказать — запустить — изменить — объяснить — проверить». Наблюдение на маленьком наборе не превращайте в обещание для реальных людей.
from pathlib import Path
from tempfile import TemporaryDirectory
from data_store import create_database, minutes_report
from security_assistant import backup, restore, verify
with TemporaryDirectory() as folder:
a, b, c = (Path(folder) / name for name in ("a.db", "b.db", "c.db"))
create_database(a, "tasks.json", "study_sessions.csv")
backup(a, b); restore(b, c)
print(verify(c), minutes_report(c))
Ожидаемый вывод
(3, 4) [('t-01', 45), ('t-02', 0), ('t-03', 25)]
Поймайте ошибку
Выпуск 1.3 защищён только в учебных границах: локальный просмотр, отказ от перезаписи, проверка целостности и восстановление. Здесь нет учётных записей, шифрования резервной копии и защиты публичного сервера. Не размещайте его в интернете.
Изменение проекта
В проекте 1.3 сохраняются исходные три задачи, четыре занятия и правила напоминаний. Новые действия вынесены в security_assistant.py: проверка, создание отдельной копии и восстановление только в новый файл. Запишите, от какой угрозы помогает это изменение и от какой не помогает; учебные данные остаются вымышленными.
Задание и доказательство
Предъявите пять доказательств: три задачи, четыре занятия, отчёт 45/0/25, проверенное восстановление и отказ от подменённой копии. Ответьте на 8 из 10 контрольных вопросов; через неделю повторите 7 из 10 без подсказки.
Десять вопросов для самопроверки
- Что именно защищает mode=ro?
- Что является активом?
- Чем отличается угроза от уязвимости?
- Зачем соли разные?
- Почему два пароля не два фактора?
- Что делать с фишинговой ссылкой?
- Чем хеш отличается от шифра?
- Что означает 3/4?
- Почему восстановление в новый файл?
- Что остаётся вне защиты 1.3?
Перенос в новую ситуацию
Друг предлагает открыть порт сервера всему классу. Какие новые требования появятся до такого решения?
Возврат через 1, 7 и 30 дней
Через 1 день нарисуйте схему по памяти и найдите в ней одну границу применения. Через 7 дней объясните её товарищу, не читая урок, и решите 7 из 10 вопросов блока; ошибочные ответы разберите на конкретных входах. Через 30 дней откройте свежую копию проекта, воспроизведите проверку и перенесите принцип в новый пример. Сохраните свой протокол с входом, ожидаемым и фактическим результатом.
Первоисточник для проверки
Следующий урок
Если вы нашли ошибку или опечатку в тексте статьи, то сообщите нам об этом
Комментарии (0)
Войдите, чтобы оставить комментарий →
Пока нет комментариев. Будьте первым.