1. анализ применения контекстного механизма контроля
Тестирование эффективности контекстного механизма
Download 1.31 Mb. Pdf ko'rish
|
ВКР - АкмальА
2.3. Тестирование эффективности контекстного механизма
Тестирование и оценка эффективности контекстного механизма в данной программе "Умный дом" может включать следующие аспекты: 1. Тестирование аутентификации и идентификации: - Ввод корректного логина и пароля для успешного входа в систему. - Ввод некорректного логина или пароля для отображения сообщения о неверных учетных данных. 2. Тестирование управления доступом: - Проверка доступа к различным ресурсам (дверь, освещение, система безопасности, термостат) для разных пользователей в соответствии с матрицей доступа. - Проверка отсутствия доступа для пользователей, не имеющих прав доступа к определенному ресурсу. 3. Тестирование выполнения команд: - Проверка успешного выполнения команды (включение или выключение) для выбранного ресурса. - Проверка обработки ошибок при выполнении команды. 4. Тестирование записи в журнал доступа: - Проверка записи информации о пользователе, выполняющем команду, и самой команде в журнал доступа (access.log). - Проверка соответствия записей в журнале с действиями пользователей. 5. Тестирование взаимодействия с внешней системой управления: - Проверка отправки правильных данных о выполненной команде (ресурс, команда, аутентификационный код, пользователь) через HTTP- запрос. - Проверка обработки успешного ответа от внешней системы. 48 - Проверка обработки ошибок при взаимодействии с внешней системой. Оценка эффективности контекстного механизма может быть выполнена путем анализа следующих критериев: 1. Безопасность: Оценка степени защищенности системы от несанкционированного доступа и возможных уязвимостей. 2. Гибкость и удобство использования: Оценка уровня гибкости в управлении доступом, а также удобства использования системы для конечных пользователей. 3. Интеграция: Оценка способности системы интегрироваться с другими системами умного дома и взаимодействовать с ними. 4. Логирование и аудит: Оценка качества записи и мониторинга действий пользователей в системе. 5. Производительность: Оценка времени отклика системы на запросы пользователей и выполнение команд. 6. Расширяемость: Оценка возможности расширения функциональности системы контроля доступа для учета дополнительных ресурсов и прав доступа. Данный код представляет собой пример реализации системы умного дома с контролем доступа. Давайте разберем его более подробно: 1. Импорт необходимых модулей: - hashlib: для хеширования паролей. - sqlite3: для работы с базой данных SQLite. - logging: для ведения логов. - requests: для отправки HTTP-запросов. 2. Настройка логирования: - logging.basicConfig(filename='access.log', level=logging.INFO): задается конфигурация логирования, где логи будут записываться в файл 'access.log' с уровнем INFO. 3. Класс SmartHome: 49 - init(self): конструктор класса, инициализирует экземпляр класса AccessControl для управления контролем доступа. - login(self): запрашивает у пользователя логин и пароль, проверяет их с помощью метода check_credentials() класса AccessControl. Если аутентификация прошла успешно, вызывается метод start_menu(), иначе выводится сообщение о неверном логине или пароле. - start_menu(self): отображает меню выбора ресурса и выполняет соответствующие действия в зависимости от выбора пользователя. - access_resource(self, resource): получает текущего пользователя с помощью метода get_current_user() класса AccessControl. Затем, используя контекстный менеджер grant_access(), предоставляет доступ к выбранному ресурсу. Вводится команда, которая передается методу execute_command() класса AccessControl для выполнения команды. 4. Класс AccessControl: - init(self): конструктор класса, инициализирует матрицу доступа access_matrix, определяющую, какие пользователи имеют доступ к каким ресурсам. Текущий пользователь current_user изначально устанавливается в None. - check_credentials(self, username, password): проверяет логин и пароль пользователя, хеширует введенный пароль и сравнивает его с хешем, хранящимся в базе данных. Если аутентификация успешна, устанавливается текущий пользователь и возвращается True, иначе возвращается False. - get_current_user(self): возвращает текущего пользователя. - grant_access(self, user, resource): проверяет, имеет ли пользователь доступ к указанному ресурсу. Если доступ разрешен, создается экземпляр класса AccessContext, который представляет контекст доступа. Если доступ запрещен, возвращается экземпляр класса NullContext. - execute_command(self, resource, command): выполняет команду для указанного ресурса. Отправляет POST-запрос на указанный API-эндпоинт с 50 информацией о ресурсе, команде, аутентификационном коде и текущем пользователе. Результат выполнения команды выводится в консоль. 5. Классы AccessContext и NullContext: - AccessContext: контекстный менеджер, который используется для предоставления доступа к ресурсам. При входе в контекст вызывается метод enter(), который возвращает самого себя. При выходе из контекста вызывается метод exit(). - NullContext: пустой контекстный менеджер, используется в случае отсутствия доступа к ресурсу. 6. Создание базы данных и таблиц: - Создается соединение с базой данных access.db. - Создается таблица "users" для хранения пользователей. - Вставляются тестовые пользователи в таблицу. 7. Пример использования: - Создается экземпляр класса SmartHome. - Вызывается метод login() для аутентификации пользователя и начала работы в системе умного дома. Данный код демонстрирует простой пример реализации контроля доступа в системе умного дома, где различным пользователям предоставляется доступ к разным ресурсам в зависимости от их прав доступа. Download 1.31 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling