Разработка каталога сайтов
Техническое задание на разработку системы управления каталогом сайтов
Цель проекта
Создать удобную и безопасную систему для управления категориями и сайтами в каталоге, обеспечивающую добавление, редактирование, удаление данных и управление кэшем.
Требования к системе
1. Авторизация
- Реализовать защищенную систему входа для администратора.
- Использовать хеширование паролей (например, алгоритм bcrypt).
- Защитить систему от brute-force атак с ограничением попыток входа.
2. Управление категориями
- Возможность создавать новые категории с указанием названия и уникального slug.
- Редактирование существующих категорий (название, slug).
- Удаление категорий с предварительным предупреждением и подтверждением действия.
3. Управление сайтами
- Добавление сайтов в выбранные категории с полями: название, URL, описание, слоган, иконка, изображение.
- Редактирование данных сайтов, включая замену изображения.
- Удаление сайтов с подтверждением действия.
- Обеспечение уникальности названий и URL в рамках одной категории.
4. Кэширование
- Реализовать механизм очистки кэша для отдельных сайтов, категорий и всей системы.
- Автоматическая очистка кэша при изменении данных.
5. Безопасность
- Защитить систему от CSRF-атак с использованием токенов.
- Валидировать и экранировать все входные данные для защиты от SQL-инъекций и XSS.
- Использовать подготовленные запросы для работы с базой данных.
6. Интерфейс
- Разработать административную панель с вкладками для навигации по категориям.
- Использовать модальные окна для добавления и редактирования данных.
- Обеспечить интуитивно понятный и адаптивный дизайн.
Технические требования
- Язык программирования: PHP 8.x
- База данных: MySQL
- Фронтенд: HTML5, CSS3, JavaScript
- Дополнительно:
- Кросс-браузерная совместимость (Chrome, Firefox, Safari).
- Оптимизация производительности для работы с большими объемами данных.
Срок выполнения
Разработка и тестирование: 2 недели с даты утверждения ТЗ.
Выполненные задачи
1. Система авторизации
- Разработана форма входа с использованием сессий для управления доступом.
- Пароли хранятся в зашифрованном виде с использованием функции
password_hash
(алгоритм bcrypt). - Реализована защита от brute-force атак: после 5 неудачных попыток входа доступ блокируется на 10 минут.
2. Управление категориями
- Создана функциональность добавления категорий с проверкой уникальности slug (допустимы только латинские буквы, цифры и дефисы).
- Реализовано редактирование и удаление категорий. При удалении отображается модальное окно с запросом первых 8 символов CSRF-токена для подтверждения.

3. Управление сайтами
- Разработана форма добавления сайтов с валидацией всех полей (URL проверяется на корректность, название — на уникальность в пределах категории).
- Реализовано редактирование сайтов с возможностью загрузки нового изображения (поддерживаемые форматы: PNG, JPG).
- Удаление сайтов сопровождается предупреждением и запросом подтверждения через CSRF-токен.

4. Кэширование
- Созданы функции для очистки кэша:
- Для конкретного сайта.
- Для выбранной категории.
- Для всей системы.
- При любом изменении данных (добавление, редактирование, удаление) кэш автоматически обновляется.
5. Безопасность
- Все формы защищены CSRF-токенами, генерируемыми для каждой сессии.
- Входные данные проходят строгую валидацию и экранирование для предотвращения XSS-атак.
- Использованы подготовленные запросы PDO для защиты от SQL-инъекций.
6. Интерфейс
- Разработана панель с вкладками для переключения между категориями.
- Добавлены модальные окна для создания и редактирования данных.
- Реализованы раскрывающиеся формы для удобного редактирования существующих записей.
- Дизайн адаптирован для всех современных браузеров и устройств.
Примененные технологии
- PHP 8.4: Основной язык разработки, использованы сессии и PDO для работы с базой данных.
- MySQL: Хранение данных о категориях и сайтах в реляционной базе.
- JavaScript: Управление клиентской логикой (модальные окна, вкладки, валидация форм).
- CSS3: Адаптивный дизайн с использованием
flexbox
иgrid
. - Безопасность: CSRF-токены, хеширование паролей, ограничение попыток входа.
Результат
- Разработана полнофункциональная административная панель, соответствующая требованиям заказчика.
- Система протестирована на предмет безопасности и производительности.
- Интерфейс интуитивно понятен, что минимизирует время обучения администратора.
Главная страница сайта

Страница - категория

Страница с описанием сайта

Ночной режим
