ТЕОРЕТИЧЕСКОЕ ВВЕДЕНИЕ
Целью лабораторной работы является анализа двух матриц доступа (начальнуюикорректную)длятого,чтобыисправитьпервуюсогласноданным из второй. Кроме этого, необходимо реализовать простейший интерфейс взаимодействия с матрицей доступа. Вышепоставленные цели должны быть выполненыприпомощиалгоритмареализованногоналюбомдоступномязыке программирования.
Формулировка определений и их свойств
Матрица доступа – это формальная модель и таблица, которая определяет права каждого пользователя или субъекта в системе на доступ к различным информационным ресурсам или объектам. Она визуализирует, кто, к каким данным и какие действия (чтение, запись и т.д.) имеет право выполнять, обеспечивая управление и контроль безопасности данных.
В данной лабораторной работе рассматривается дискреционная матрица доступа в основе которой лежит выдача прав доступа к определенным файлам определенным пользователям.
Рисунок 1. Пример матрицы доступа
4
Описание программы
Вкачестве языка программирования был выбран язык «Python» ввиду своей простоты и широкого выбора пользовательских библиотек.
Вданной программе (приложение А) каждый рассматриваемый работник – объект класса worker.
Данный класс состоит из следующих полей и методов:
•name – поле, которое содержит имя работника
•access – поле, которое является словарем, в котором по ключу доступа(“+”или“-“)можнополучитьсписокфайлов,ккоторымобъекткласса worker имеет или не имеет доступ.
•__init__(self, name) – конструктор класса
•printInfo(self) – метод, отвечающий за вывод в поток вывода полной информации, имеющейся в объекте класса. Является «Debug»- методом.
5
Методы программы:
•getJSON(url) – метод, отвечающий, за получение матрицы доступа с веб-ресурса по ссылке url. Возвращает конвертированный из JSON словарь доступов.
•writeToChangelog(str) – метод, отвечающий за запись подаваемой на вход строки str в файл log.txt
•showLog(path) – метод, отвечающий за передачу в поток вывода полного содержимого файла по пути path. В данной программе – log.txt
•send(user, file, value) – метод, отвечающий за отправку
новых данных о user, file, value, используя метод set API веб-ресурса.
•readCorrectList(path) – метод, отвечающий за считывание корректной матрицы доступа по пути path и дальнейшего инстанцирования класса worker при помощи полученных данных.
•readJSONList(data) – метод, отвечающий за считывание матрицы доступа из конвертированного в словарь JSON файла data, изначально полученного при помощи метода getJSON(url)
•compareWorkers(JSONWorkers, correctListWorkers) –
метод,отвечающийзасравнениемассиваработников,полученныхизматрицы доступа, находящейся на веб-ресурсе, JSONWorkers и массива работников из корректной матрицы доступа correctListWorkers.
•userAccesses(objArray) – метод, отвечающий за вывод доступов к файлам у определенного работника из массива работников objArray.
•changeUserAccess(objArray) – метод, отвечающий за реализацию функционалаизменения прав доступау конкретного работника из массива работников objArray к конкретному файлу.
•makeTable(data) – метод, отвечающий за создание визуализации матрицы доступа на основе словаря data.
6
