TGViewer
Системный Аналитик Системный Аналитик @sys_sa · 19.1K subscribers
Post #161 9.69K
🛡Безопасность API: базовые принципы

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

Способы обеспечения безопасности

1️⃣ Использование зашифрованного протокола TLS. Рекомендуется шифровать трафик запросов и ответов API для защиты конфиденциальности информации при передаче по незащищенным сетям. Общепринятой практикой является использование протокола шифрования TLS. Поверх TLS работает HTTPS, о котором мы уже писали.

2️⃣ Авторизация запросов. Авторизация подразумевает, что данному клиенту разрешено выполнять операцию над ресурсом. Следует учитывать:
▪️Проверку прав доступа к объектам при каждом запросе.
▪️Проверку того, что залогиненный пользователь имеет доступ только к разрешенным объектам.
▪️ID объектов должны быть сложными для подбора, например в виде UUID, а не простая последовательность 1, 2, 3.

3️⃣ Проверка содержимого запроса. Необходимо проверять, что запрос не содержит опасных компонентов (например, SQL-инъекции, XSS-атаки, DTD-атаки). При этом недопустимо автоматически десериализовать пришедшие данные и записывать их в БД без каких-либо проверок бизнес-логики и прав доступа.

4️⃣ Проверка скорости и количества запросов: контроль, что запросы API не превышают определенной скорости для защиты сервиса от перегрузки или атак. Может настраивать квоты запросов на клиента. Сюда входит, например, блокировка IP по результатам неудачных попыток входа.

5️⃣ Контроль размера запроса: проверяет, что полезная нагрузка запроса не превышает ограничения для операции API. Предотвращает попадание неправильных (больших) запросов к сервису.

6️⃣ Мониторинг безопасности: логировние ключевых событий, таких как неудачные попытки аутентификации, отказы в доступе, ошибки валидации входных данных. Также следует мониторить инфраструктуру, сетевую активность, загрузку ОС. Важно настроить алерты, чтобы максимально оперативно реагировать на риски.

7️⃣ Если API непубличное, следует ограничить адреса, с которых разрешено использование API. Также можно ограничивать HTTP методы, которые могут быть использованы для доступа к API и задать список заголовков, которые сервер может принимать.

📄 Стандарты в области безопасности API
1. OWASP (Open Web Application Security Project), а также есть стьтья-перевод на русском на Хабре
2. RFC 7519 — JSON Web Token (JWT)
3. OAuth 2.0, простым языком: статья на Хабре

📑 Статьи
1. Безопасность REST API от А до ПИ
2. Рекомендации по проектированию безопасности API для внутренних и облачных систем
3. Требования аутентификации и авторизации API — раздел открытого курса по документированию API
4. Защита API от атак — статья на Tadviser от ИБ-компании
5. Требования к информационной безопасности: кого вовлекать в выявление? — статья Алексея Краснова на Systems.Education

⏯ Видео
1. Защита API и микросервисной инфраструктуры — доклад директора ИБ-компании
2. Тестирование безопасности API — Катерина Овеченко. QA Fest 2019
3. Курс видеолекций "Безопасность интернет-приложений" от Mail.ru Group, МГТУ им. Н.Э. Баумана (осень 2014)
4. Основы безопасности веб-приложений — вебинар от Skillbox
5. Открытая лекция Академии Яндекса про безопасность веб-приложений (2017)
6. Информационная безопасность в аналитике — доклад Галины Матвеевой на конференции Analyst Days-9
7. Информационная безопасность и криптография. Точка зрения аналитика — доклад Сергея Евтуховича на конференции Analyst Days #15

Инфографика по безопасности API

#безопасность #api
  • 👍 9
  • 🔥 8
  • ❤ 3
  • 👏 2
More from @sys_sa
  1. Sep 30, 2026Что на самом деле происходит в процессах — и как это увидеть 8–9 октября собираемся в заго…
  2. Sep 28, 2026🔼AMQP, MQTT и STOMP: протоколы обмена сообщениями AMQP, MQTT и STOMP — независимые проток…
  3. Aug 28, 2026❓ ICAM (Incident Cause Analysis Method) ICAM (Incident Cause Analysis Method) — метод разб…
  4. Aug 19, 2026🖥 NewSQL NewSQL — класс реляционных СУБД, который совмещает привычный SQL и строгие ACID…
  5. Jul 14, 2026🔼 Server Driven UI (SDUI) Server Driven UI (SDUI) — архитектурный подход, при котором сер…
  6. Jul 7, 2026📊 Сравнение Баз данных и Хранилищ данных ▫️База данных – оперативное хранилище, где содер…
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 →