TGViewer
Шпаргалки для айтишников Шпаргалки для айтишников @itcheat_sheet · 749 subscribers
Post #355 1.32K
Как разработать безопасный доступ к веб-интерфейсу API для вашего сайта?

Когда мы открываем доступ к веб-интерфейсу API для пользователей, нам необходимо убедиться в том, что каждый вызов API аутентифицирован. Это означает, что пользователь должен быть тем, за кого он себя выдает.

В этой статье мы рассмотрим два распространенных способа:

1. Аутентификация на основе токенов

2. Аутентификация на основе HMAC (Hash-based Message Authentication Code).

На приведенной ниже схеме показано, как они работают.

Аутентификация на основе токенов
Шаг 1 - пользователь вводит свой пароль на клиенте, а тот отправляет его на сервер аутентификации.

Шаг 2 - сервер аутентификации проверяет подлинность учетных данных и генерирует маркер со сроком действия.

Шаги 3 и 4 - теперь клиент может отправлять запросы на доступ к ресурсам сервера с маркером в HTTP-заголовке. Такой доступ будет действителен до истечения срока действия маркера.

На основе HMAC
Этот механизм генерирует код аутентификации сообщения (подпись) с помощью хэш-функции (SHA256 или MD5).

Шаги 1 и 2 - сервер генерирует два ключа, один из которых - Public APP ID (открытый ключ), а другой - API Key (закрытый ключ).

Шаг 3 - теперь мы генерируем HMAC-подпись на стороне клиента (hmac A). Эта подпись формируется с помощью набора атрибутов, перечисленных на схеме.

Шаг 4 - клиент отправляет запросы на доступ к ресурсам сервера с hmac A в HTTP-заголовке.

Шаг 5. Сервер получает запрос, содержащий данные запроса и заголовок аутентификации. Он извлекает из запроса необходимые атрибуты и использует ключ API, хранящийся на стороне сервера, для генерации подписи (hmac B).

Шаги 6 и 7 - сервер сравнивает hmac A (сгенерированный на стороне клиента) и hmac B (сгенерированный на стороне сервера). Если они совпадают, то запрашиваемый ресурс возвращается клиенту.
  • 👍 3
More from @itcheat_sheet
  1. Apr 5, 20259 шпаргалок по RAG, LLM и агентам ИИ ...для инженеров ИИ (объяснение с наглядными примерам…
  2. Jan 22, 2025Шпаргалка из 128 шпаргалок для разработчиков https://dev.to/devmount/a-cheatsheet-of-128-c…
  3. Jan 18, 202512 команд Git, которые вы должны знать
  4. Nov 3, 2024Шпаргалка Linux
  5. Sep 30, 2024Шпаргалка по Docker для начинающих 🐳 https://dev.to/keshav___dev/docker-cheat-sheet-for-b…
  6. Aug 31, 2024Памятка по Kubectl — команды Kubernetes (от базового до продвинутого) https://www.strongdm…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →