ПроектПроверено 2026Локальный прогресс

Файловые заметки

Учебный проект 4 из 12: Атомарная запись, блокировка, безопасные имена и ограничение размера.

Файловые заметки

Постановка

Атомарная запись, блокировка, безопасные имена и ограничение размера.

Архитектура

NoteRepository принимает идентификатор, но сам строит безопасное имя файла; Serializer отвечает за формат, LockGuard — за согласованную запись.

Этапы

Реализуйте чтение одной заметки, атомарную запись во временный файл с rename, список metadata и контролируемое удаление в корзину.

Безопасность

Запретите разделители пути и NUL, проверьте итоговый realpath внутри каталога данных, ограничьте размер и не размещайте хранилище под публичным web‑root.

Чек-лист

Проверьте конфликт двух записей, оборванный временный файл, `../`, Unicode‑имя, пустую заметку и восстановление после неудачного rename.

Локальный прогресс

Закрепите материал

Отметка, заметка, чек-лист и ответы остаются в localStorage этого браузера и не отправляются в аналитику.

Связанные материалы

Источники и проверка

  • PHP Documentation Group — структурный источник, без внешней ссылки

Последняя содержательная проверка: . Автор-разработчик Михаил Каржин. Методика качества контента.

Данные этого сервиса

Настройки cookie и локальных данных

Аналитика

Текущий статус: не выбран. До согласия обе аналитические системы не загружаются.

Локальные данные

Удаление затрагивает только ключи PHP-сервиса в этом браузере и требует подтверждения.

Политики

Политика конфиденциальности · Политика использования файлов cookie