Skip to content

Israfil22/KeyServer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Управление ключами доступа для приложения

Предисловие

В ходе разработки приложения для курсовой работы, по причине существования обязательного пункта, создания клиент-серверной архитектуры, возникла необходимость реализовать проверку доступа через пару ключ-логин.
Данная панель управления была выполнена автором не для собственного использовани, а в качестве помощи одногруппнику, откуда в работе прослеживаются иные имена и фамилии.
Любой исходный код является оригинальным, за шрифтов и части стилей некоторых элементов.

Цели

  • Создание интерфейса для управления записями в хранилище ключей
  • Создание сервера для проверки правильности пары: ключ-контрольная информация.

Задачи

  1. Разработка веб-приложения для управления и отображения записей в базе данных.
  2. Разработка безопасной системы обработки запросов к базе данных на проверку правильности введённых данных пользователем десктоп-приложения.

Выполнено

Бекенд

  1. Модуль работы с БД тык
  2. Модуль работы с куки тык
  3. Модуль работы с авторизацией тык
  4. Обработчики для авторизации, работы с бд, и проверкой сессии в куки(постфикс handler/handle).

Фронтенд

  1. Разработка веб-страниц для главной страницы скачки приложения /user/index.html
  2. Подбор стилей, шрифтов для главной страницы.
  3. Разработка интерфейса администратора.

Известные ошибки

SQL инъекции

В одной части кода присутствует возможность выполнения SQL-инъекции.
Этот пункт является логической ошибкой при разработке приложения.
Единственный случай, при котором возможна инъекция, это при первичном вводе свобдной пары ключ-логин, где вместо логина может быть вставлена инъекция.
Ошибка была допущена поскольку формирование архитектуры базы данных и представление об отображении ключей было несовершеннным на момент планирования проекта.
Также на изучение соответствующих инструментов для защиты от инъекци необходимое некоторое количество времени.
В рамках курсовой работы, где данная часть(веб-панель управления) общего проекта(игра) является больше демонстрационной, нежели "боевой", исправление такого рода ошибок не является первостепенным в силу малого количества свободного времени.

Причина кратко: Измнение части архитектуры приложения буквально в конце разработки.

Решение ошибки

  1. Переписать модуль, взаимодействующий с базой данных с использованием PDO.
  2. Использовать обратимое шифрование/кодирование данных при записи в базу данных. При извлечении - дешифровать перед выходом.

Удаление сессий из БД

При заходе администратора внутрь панели создается сессия в базе данных, у которой есть срок ограничения действия, задающийся в коде.
После истечения данного срока действия сессия должна быть удалена.
На данный момент создан планировщик, который запускается при исполнении любого php-скрипта.
В планировщике находится список выполняемых задач, в том числе и отчистка базы данных.
Таким образом, до начала проверки входа пользователя, ключ, если время его действия истекло, будет удалён, и код отработает корректно.
Однако записи все еще остаются в базе данных до отсуствия взаимодействия с скриптом, где присутствует планировщик.

Причина кратко: Недостаток знаний о возможных "правильных" решений проблемы своевременной отчистки. / Не знание верной структуры работы для данной задачи.

Решение ошибки

  1. Добавить задачи cron, что будут отчищать базу данных время от времени.

Расширяемость системы в JS

Все написанные модули для JS создавались с рассчётом исключительно на данное приложение без учёта расширения.
В конечном счёте описываемый пункт в целом не является проблемой в рамках данного проекта, так как выполняет необходимые функции.
Однако в коде присутствует достаточное количество монолитности, что отрицательно скажется при теоретическом расширении проекта.

Причина кратко: Отсутствие перспектив развития данной работы.

Решение ошибки

  1. Полный рефакторинг всех модулей JavaScript

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published