3.2 Тестирование безопасности и применение мер безопасности
Тестирование безопасности проводилось по фактическим сценариям работы системы: проверялись ограничения входа, защита ролей, блокировка подозрительных действий, корректность загрузки изображений и обработка пользовательского ввода. Результаты проверки фиксировались по ожидаемому и фактическому результату в текстовой форме и таблицах тестирования.
При разработке веб-приложения особое внимание было уделено базовым мерам защиты, достаточным для учебного проекта и в то же время демонстрирующим понимание типичных рисков веб-разработки. К числу таких рисков относятся несанкционированный доступ к административным функциям, подбор паролей, ввод опасных данных через формы, загрузка нежелательных файлов, некорректное изменение ролей пользователей и выполнение действий, нарушающих целостность бизнес-процесса. Для снижения вероятности указанных проблем в системе были предусмотрены проверки как на стороне сервера, так и на уровне прикладной логики.
Одним из важных решений стало ограничение количества неудачных попыток входа и введение механизма временной блокировки, а также дополнительной блокировки учётной записи при подозрительно активных повторных попытках авторизации. Помимо этого, реализована защита от чрезмерного количества обновлений страницы, что позволяет продемонстрировать нестандартный, но показательный пример контроля аномального поведения. Значимым элементом является и защита главного «Администратора»: такой аккаунт нельзя удалить или заблокировать, поскольку подобные действия могут парализовать управление системой. Для дипломного проекта эта функция особенно полезна, так как показывает, что безопасность рассматривается не формально, а применительно к конкретной логике приложения.
Не менее важны меры, связанные с вводом данных и загрузкой файлов. Все формы, где «Пользователь» или «Администратор» может передавать текстовую информацию, должны обрабатываться с учётом защиты от внедрения исполняемых скриптов и других нежелательных конструкций. Аналогично, при загрузке изображений товаров необходимо контролировать расширение файла, его реальный MIME-тип и размер. Такая проверка снижает риск загрузки неподходящих или потенциально опасных данных. Хотя реализованные меры не претендуют на уровень промышленной системы с многоуровневой защитой, они являются достаточными и обоснованными в контексте дипломного проекта на уровне колледжа.
Тестирование безопасности проводилось на уровне тех мест, где «Пользователь» или «Администратор» вводит данные. К таким местам относятся регистрация, профиль, адреса доставки, обращения в поддержку, отзывы, формы добавления товаров и загрузка изображений.
Для защиты от SQL-инъекций в проекте используются подготовленные запросы PDO. пользовательские значения передаются как параметры, поэтому они не становятся частью SQL-кода. Это особенно важно для форм входа, поиска товаров, оформления заказов и административных действий.
Для защиты от XSS пользовательский ввод очищается от HTML-тегов, а при выводе на страницу проходит экранирование. Это предотвращает выполнение скриптов, которые злоумышленник мог бы попытаться вставить в отзыв, адрес доставки или сообщение поддержки.
Пароли пользователей хранятся только в виде хэшей. При регистрации пароль и подтверждение должны совпадать. При входе пароль сверяется с хэшем, а не сравнивается с открытым текстом. Такой подход является базовой мерой защиты учётных записей. измени этот раздел на отладка разработанного программного обеспечиния