Современные цифровые решения — веб-приложения, микросервисные архитектуры и многофункциональное ПО — взаимодействуют между собой при помощи API, наборов программных интерфейсов. Пример их использования — размещение на веб-сайтах интерактивных карт, когда при помощи набора сервисов Яндекс или Google в сторонний проект добавляются картографические данные.
При помощи API пересылаются различные типы приватной информации. Например, у крупных банков есть собственные API, благодаря которым сторонние поставщики финансовых услуг интегрируют свои сервисы в банковскую инфраструктуру.
Так как API используют при пересылке личных и финансовых данных, то с ростом их числа увеличивается и интерес со стороны злоумышленников. Поэтому защита API — важный аспект информационной безопасности.
Что такое REST API?
Наиболее распространенной технологией организации программных интерфейсов является REST API. Термин REST (Representational State Transfer) означает передачу состояния представления и описывает способ получать и модифицировать данные удаленных приложений с помощью протокола HTTP. REST достаточно легко внедряется и обеспечивает кросс-платформенную переносимость любых API.
Практически всюду, где требуется организовать трансфер данных между сервером и пользователем сайта или веб-приложения, используется технология REST API. Поясним, как выглядит практическое применение REST API на примере наших страниц программных решений.
Вы можете заметить, что в правом верхнем углу расположено окно с кнопкой проигрывателя YouTube — когда вы нажимаете ее, веб-версия API осуществляет HTTP-запрос и запускает видеоролик по ссылке так, что смотреть его можно, не покидая сайт. То есть REST позволяет программам общаться друг с другом через стандартный протокол, при помощи которого получают почти всю информацию в интернете.
Если говорить о практическим применении технологии REST API в наших программных решений, то она используется в продукте «eKassir Адаптер для Системы быстрых платежей» — в модуле электронной коммерции для бизнеса. Наборы программных интерфейсов реализуют передачу между платежно-транзакционным сервером и веб-эквайрингом, благодаря которому пользователи совершают платежи по интернету.
Методы работы API
Запросы к веб-ресурсу или приложению исполняются при помощи различных способов обращения. От типа запроса зависит, как будет работать алгоритм. Традиционно архитектура REST API использует четыре метода:
- GET— чтение информации. Запросы, сформированные таким методом, отвечают за простую передачу данных с сервера, но не удаляют и не исправляют их.
- DELETE— удаление данных.
- POST— создание или регистрация записей.
- PUT— изменение или обновление данных.
Эти HTTP-запросы также называют идентификаторами CRUD (создание/чтение/обновление/удаление). Они определяют традиционные виды взаимодействия с данными. Например, чтобы удалить блок с YouTube-видео на странице решения, REST API будет использовать метод DELETE.
Интересно, что архитектура REST API позволяет устанавливать приоритеты при работе с клиентами. Например, можно создавать URL, таргетированные на разные классы продуктов или услуг, размещая приоритетные материалы на более производительном сервере.
Для чего используют REST API
Почти все языки программирования и ОС по умолчанию поддерживают протокол HTTP (или его шифрованню версию HTTPS) — благодаря этому архитектура REST стала столь популярной.
REST API хорошо масштабируется и подходит для построения приложений с микросервисной архитектурой, при разработке которой важно разделение больших частей на маленькие. Кроме того, REST применяется для обращения сервисов к технологиям облачных вычислений. А поскольку технология подразумевает использование кэша, то это повышает общую производительность REST и, как следствие, она может быть использована на сайте или в сервисе, который будет значительно масштабироваться.
REST API применяется:
- При разработке микросервисных приложений
- Если требуется внести изменения в уровень базы данных, не задевая логику приложения
- При предоставлении доступа к программам поставщиков «третьей стороны»
- При ограниченной пропускной способности соединения с сервером
Пример реализации REST API
Технологией REST API пользуются все социальные сети — как на уровне авторизации, так и на уровне встраивания соцсети в сторонние проекты. Рядовой пример — кнопки Share, которые встречают на огромном количестве сайтов и позволяют разместить пост, комментарий или содержимое страницы в «ленте» социальной сети.
Нажатие такой интерактивной кнопки вызывает удаленный сервер, который посредством веб-версии API реализует запуск приложения или иной операции.
REST API использует популярнейший сервис микроблогов Twitter, запросы с которому отправляются в формате JSON. Сервер обрабатывает запрос клиента и возвращает ему ответ в виде доступа к ресурсу, расположенному по указанному URL.
Аналогичным образом мобильные (например, банковские) приложения связываются с серверными, с той лишь разницей, что передаваемые данные могут оборачиваться в другие форматы, например, XML.
Защита REST API
Безопасность API начинается с безопасности соединения, поэтому обязательно применение поддерживающего криптографическое шифрование HTTPS-протокола. Он гарантирует, что вся связь программных интерфейсов будет шифроваться с использованием SSL/TLS.
Важно использовать API ключи для авторизации или другой подходящий механизм отслеживания и ограничения количества и скорости запросов от пользователя, которые будут обрабатываться в течение установленного времени.
Для контроля безопасного доступа к интерфейсам также используют различные методы аутентификации REST API:
- Аутентификация HTTP — наименее надежный, но самый простой метод, который заключается в том, что конфиденциальные данные передаются в заголовках HTTP без шифрования.
- Аутентификация при помощи API Key — в этом методе применяется уникальный ключ для учетных данных. В такой схеме ключ является длинной последовательностью букв и цифр, которая отличается от пароля для входа владельца учетной записи.
- Применение протокола авторизации OAuth 2.0, позволяющего выдать веб-приложению права на доступ к пользовательским ресурсам на стороннем сервисе. Это один из наиболее надежных методов обеспечения безопасности: OAuth 2.0 используют, например, API Google и Mail.ru.