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