Shanraq.org Shanraq.org
Выпуск 1.3: защищённый помощник и восстановление
Общество

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

Выпуск 1.3: защищённый помощник и восстановление

Вы передаёте помощника однокласснику.

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

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

Выпуск 1.3: защищённый помощник и восстановление

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

Вы передаёте помощника однокласснику. Он должен суметь открыть страницу, получить тот же отчёт и восстановить испорченную учебную копию без ваших устных подсказок. Это и есть проверка выпуска 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 без подсказки.

Десять вопросов для самопроверки

  1. Что именно защищает mode=ro?
  2. Что является активом?
  3. Чем отличается угроза от уязвимости?
  4. Зачем соли разные?
  5. Почему два пароля не два фактора?
  6. Что делать с фишинговой ссылкой?
  7. Чем хеш отличается от шифра?
  8. Что означает 3/4?
  9. Почему восстановление в новый файл?
  10. Что остаётся вне защиты 1.3?

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

Друг предлагает открыть порт сервера всему классу. Какие новые требования появятся до такого решения?

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

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

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

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

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

Правило, алгоритм и обучаемая модель

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

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

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

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

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

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