Что такое микрописервер? Микрописервер — это простая библиотека для реализации HTTP-сервера на базе таких устройств, как ESP8266 или ESP32, написанная на Micropython. Вы можете скачать это здесь .
Что мы пытаемся сделать?
Часто нам необходимо ограничить доступ к веб-интерфейсу нашего IoT-устройства извне, поскольку интерфейс может содержать элементы управления или данные, которые мы не хотим предоставлять внешнему миру.Стандартным средством ограничения доступа к веб-интерфейсу является метод аутентификации, т.е.
для доступа к нашему устройству мы запросим логин и пароль пользователя.
Для решения проблемы аутентификации мы будем использовать такой механизм, как Базовая аутентификация , этот метод является самым простым в реализации, поскольку он не требует ни использования файлов cookie, ни наличия механизма сеанса, ни специальной HTML-страницы и формы для аутентификации.
Что такое базовая аутентификация?
Механизм базовой аутентификации поддерживается всеми современными браузерами.Он не защищает конфиденциальность передаваемых учетных данных.
Логин и пароль пользователя просто закодированы с помощью Base64 в HTTP заголовок под названием «Авторизация», они никак не шифруются и не хэшируются.
Поэтому для повышения безопасности этот механизм лучше всего использовать в сочетании с безопасным протоколом.
HTTPS. Поскольку пароль и информация для входа должны отправляться в заголовке каждого HTTP-запроса, веб-браузеру необходимо кэшировать введенные учетные данные в течение разумного периода времени, чтобы избежать постоянного запроса у пользователя имени пользователя и пароля.
Политики кэширования различаются в зависимости от браузера.
В современных браузерах кэшированные учетные данные базовой аутентификации обычно удаляются при очистке истории просмотров.
Большинство браузеров позволяют пользователям специально очищать учетные данные, хотя эту опцию может быть трудно найти, и обычно она удаляет учетные данные для всех посещенных сайтов.
На стороне браузера механизм авторизации построен следующим образом:
- Логин и пароль объединяются одним двоеточием (:).
Это означает, что само имя пользователя не может содержать двоеточие;
- Результирующая строка кодируется в последовательность октетов.
Набор символов, используемый для этой кодировки, по умолчанию не указан, если он совместим с US-ASCII, но сервер может предложить использовать UTF-8, отправив параметр charset;
- Результирующая строка кодируется с использованием Base64;
- Затем к закодированной строке добавляются метод авторизации и пробел (например, «Basic»);
Тогда заголовок авторизации будет выглядеть так: Авторизация: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== Со стороны сервера запрос на авторизацию обрабатывается следующим образом:
- когда сервер хочет, чтобы браузер аутентифицировал себя на сервере, сервер должен соответствующим образом ответить на неаутентифицированные запросы;
- для неаутентифицированных запросов сервер должен вернуть ответ, заголовок которого содержит статус HTTP 401 Unauthorized и заголовок WWW-Authenticate;
Давайте реализуем базовую аутентификацию
Теперь, когда механизм авторизации стал понятен, напишем реализацию авторизации с использованием библиотеки HTTP-сервера.Чтобы сохранить соединение с паролем/логином, мы будем использовать формат данных json и хранить его в файле отдельно от кода с именем Credentials.json:
Теги: #Программирование микроконтроллеров #микроконтроллеры #python #ESP32 #Сделай сам или Сделай сам #Электроника для начинающих #Умный дом #электроника #сделай сам #MicroPython #ESP8266{
-
Защитите Свой Реестр
19 Oct, 24 -
История Коммерческих Кассовых Аппаратов
19 Oct, 24 -
Композиция По Случаю Возвращения.
19 Oct, 24 -
Как Презентовать Веб-Дизайн?
19 Oct, 24 -
Как Мы Писали Службу Поддержки
19 Oct, 24