Работа с аутентификационными данными цели¶
Типы аутентификационных данных¶
Аутентификация — процедура проверки подлинности введённых пользователем данных для подтверждения доступа.
Пользователь может использовать различные типы аутентификационных данных.
Базовая HTTP-аутентификация¶
«Базовая» схема HTTP-аутентификации определена в RFC 7617. Учётные данные передаются в виде пар «ID пользователя» + «пароль», закодированных с использованием Base64.
Заголовки запроса¶
HTTP-заголовки позволяют клиенту и серверу отправлять дополнительную информацию с запросом или ответом. Они могут содержать описание данных и информацию, необходимую для взаимодействия между клиентом и сервером. В HTTP-заголовке содержится не чувствительное к регистру название, а затем после двоеточия непосредственно значение.
Куки¶
Куки — это небольшой фрагмент данных, который сервер отправляет браузеру пользователя. Браузер может сохранить этот фрагмент у себя и отправлять на сервер с каждым последующим запросом. С помощью кук можно сохранить любую информацию о состоянии.
TLS-сертификаты¶
Цифровой сертификат удостоверяет подлинность веб-сайта и позволяет использовать зашифрованное соединение. Использование сертификатов гарантирует, что данные, передаваемые между пользователями и веб-сайтами или между двумя системами, невозможно прочитать сторонним лицам или системам.
Локальное хранилище¶
Интернет-хранилище — это программные методы и протоколы веб-приложения, используемые для хранения данных в веб-браузере. Оно представляет собой постоянное хранилище данных, похожее на куки, но со значительно большей ёмкостью и без хранения информации в заголовке запроса HTTP. Для локального хранилища характерно сохранение данных после завершения сессии в браузере.
Взаимодействие¶
Для всех вышеперечисленных типов аутентификационных данных применимы следующие операции:
- добавление;
- обновление;
- запрос;
- удаление.
Эти операции доступны для целей через HTTP API в разделе «Target», а также в панели управления.
Важно
Изменение аутентификационных данных для цели не затрагивает уже имеющиеся сканирования.
Проверка валидности аутентификационных данных¶
Данная проверка осуществляется с помощью механизма проверки аутентификации. Подробнее с принципами работы и конфигурацией можно ознакомиться в разделе «Аутентификация в сканируемых приложениях».
Обновление аутентификационных данных¶
Периодическое обновление сеанса осуществляется двумя механизмами обновления аутентификационных данных:
Примеры¶
-
Добавление конфигурации механизма обновления аутентификационных данных с помощью HTTP-запроса для цели
http://auth-combined.stands.fuchsiaс помощью запросаPATCH /api/targets/:id.{ "authCheckingConfig": { "config": { "criteria": [ { "interval": "10s", "kind": "FAILED", "request": { "url": "http://auth-combined.stands.fuchsia/health-check" }, "responseConditions": { "statusCode": 401 }, "rounds": 1 } ] }, "enabled": true }, "regexpAuthRefresherConfig": { "config": { "request": { "body": "{\"username\":\"user2\",\"password\":\"password2\"}", "headers": { "Content-Type": "application/json" }, "method": "POST", "url": "http://auth-combined.stands.fuchsia/signin" }, "responseExtractors": [ { "extractor": "session_token=(.*);", "proxyParams": { "cookie": { "name": "session_token" }, "hostname": "auth-combined.stands.fuchsia", "port": "", "scheme": "http" } } ] }, "enabled": true } }
-
Добавление конфигурации механизма обновления аутентификационных данных с помощью браузерного сценария для цели
http://juice-shop.stands.fuchsiaс помощью запросаPATCH /api/targets/:id.{ "authCheckingConfig": { "enabled": true, "config": { "criteria": [ { "kind": "PASSED", "request": { "url": "http://juice-shop.stands.fuchsia" }, "responseConditions": { "statusCode": 200 } } ] } }, "browserAuthRefresherConfig": { "enabled": true, "config": { "outputExtractors": [ { "type": "TYPE_COOKIE", "selectors": ["token"] } ], "loginScript": { "inline": "base64_file" } } } }