Что такое интерфейс прикладного программирования / API?

API - это промежуточное соединение между двумя или более приложениями, чтобы они могли взаимодействовать друг с другом. Таким образом, он принимает ваш запрос к месту назначения, а затем возвращает ответ пользователю / приложению.

Они могут предоставить разработчикам базу, с которой разработчики могут быстрее начать работу и улучшить свои функции. API имеет стандартный способ обработки данных, устройства или доступа к данным из облачных приложений, таких как Salesforce или покупки с мобильного телефона. Таким образом, вы можете легко использовать инфраструктуру и подключать к ней множество приложений, таких как Android, iOS или веб-приложения.

Пример: мы находимся в магазине, и владелец магазина не может двинуться и встать с переднего сиденья из-за ограбления. Следовательно, владельцам магазинов нужен кто-то, кто может показать товар покупателю, а затем покупатель производит оплату на входе, это общение и служащий или любое третье лицо может выполнить ссылку. Этот слуга сопровождает конечного пользователя, показывает ему вещи, а затем бросает его возле главного окна оплаты. Слуга похож на API, который подключается к клиенту, а затем к владельцу.

API связывает любую стороннюю службу, которая устанавливает связь или связь между поставщиком, не задумываясь о том, кто является покупателем, потому что может быть несколько клиентов, которые хотят иметь несколько продуктов из вашего магазина. То же самое происходит, когда пользователь делает запрос из приложения и приложение, устанавливающее соединение из базы данных, и извлекает все возможные результаты из базы данных на основе запроса. Здесь API, обеспечивающий связь между пользовательским приложением запроса или базой данных.

Типы. Чаще всего используются API-интерфейсы двух типов.

  • Простой протокол доступа к объектам / SOAP: разработанный Microsoft, это протокол связи, используемый для взаимодействия веб-служб, когда передача осуществляется через HTTP / HTTPS. Он делает коммуникационные платформы независимыми, безопасными и предоставляет пользователям средства автоматизации. SOAP имеет функции атомарности, согласованности, изоляции и долговечности.

Примечание. SOAP также поддерживает XML, но имеет предопределенную структуру сообщения, набор правил кодирования и

  • Передача репрезентативного состояния / REST: он предназначен для использования существующих протоколов или HTTP, используемых для веб-API, поэтому разработчикам не нужно устанавливать дополнительное программное обеспечение и библиотеки для его использования. В нем данные не привязаны к методам и ресурсам; он может обрабатывать несколько типов вызовов одновременно и возвращать данные. Он обеспечивает гибкость для своих пользователей за счет принятия этих функций или наследования кода.

Он не может поддерживать сеансы; это «безгражданство».

Преимущества

  • Поскольку он может быть разработан поэтапно или разработчик также может использовать базовый API, это делает его более продуктивным.
  • Он обеспечивает абстракцию функциональности. Приложение-потребитель отделено от инфраструктуры, которая предлагает услугу через конечную точку API. Следовательно, это не зависит от того, кто предоставляет эту услугу.

Как это работает?

API содержит несколько конечных точек, необходимых для правильной связи. Подобно тому, как может быть конечная точка / счет, если пользователь передает идентификатор счета параметра на эту конечную точку, сервер фактически показывает счет, связанный с этим идентификатором. В этом нет пользовательского интерфейса, вам нужно отправить параметр с помощью браузера или любого стороннего программного обеспечения.

Безопасность API - отсутствие ресурсов и ограничение скорости?

Поскольку API играет важную роль в современной архитектуре приложений. Как мы все знаем, хакер может найти способ использовать такое приложение, как «Ограничение скорости».

Владелец приложения реализует «функцию ограничения скорости», чтобы ограничить сетевой трафик на конечной точке API или конечной точке приложения. Таким образом, если одно и то же действие выполняется несколько раз и на одной конечной точке, это действие не выполняется в этой конечной точке в течение указанного времени. Это означает, что запрос заблокирован на указанный срок. Для остановки частоты любой операции используется «Ограничение скорости».

Поскольку на одной конечной точке выполняется множество одновременных запросов, и иногда злоумышленники выполняют отказ в обслуживании / DOS на этой конечной точке. Из-за того, что функциональность API будет потреблять больше сетевых ресурсов, больше загрузка ЦП, больше потребление памяти и хранилища станут выше, чем обычно. Следовательно, API может быть уязвимым, если лимиты не установлены должным образом или пропущены.

  • Тайм-аут выполнения
  • Максимальное выделение памяти
  • Количество файловых дескрипторов
  • Запросить размеры полезной нагрузки
  • Количество запросов на одного клиента
  • Количество записей на страницу, возвращаемых в одном ответе на запрос

Пример: в приложении есть функция, с помощью которой пользователь может загружать изображение с помощью запроса POST в конечную точку / api / v1 / images. Чтобы манипулировать им, злоумышленник загружает изображение большого размера. Поэтому по завершении загрузки API создает несколько эскизов разных размеров. При создании нескольких эскизов все ресурсы памяти исчерпываются. Если ресурсы API исчерпаны, он не может нормально работать с другими ресурсами.

Как это выполняет злоумышленник?

  • Злоумышленники отправляют к конечной точке API количество запросов, превышающее обычную конечную точку API.
  • Злоумышленники отправляют больше запросов к конечной точке API, чтобы эта конечная точка была занята, чтобы она не могла работать должным образом или фактически не позволяла другим пользователям использовать этот API.
  • При выполнении этого на конечных точках API потребление ресурсов превышает их пределы, и даже иногда приложения не отвечают должным образом.

От подобных уязвимостей легко обезопасить себя. Разработчик может использовать эти способы для реализации безопасности.

  • Разработчики могут реализовать ограничение скорости, чтобы злоумышленник не мог выполнять DOS на конечных точках API. После определенного запроса дальнейшие запросы обрабатываться не будут.
  • Уменьшите размер полезной нагрузки, на которую злоумышленник может обработать API.
  • Ограничение скорости в соответствии с методами API, клиентами или адресом, которые необходимо получить или которые должны быть разрешены.
  • Определите ограничения на нескольких конечных точках, например на ресурсы контейнера, на степени сжатия.
  • Использование повторяющихся процессов безопасности и мер безопасности.

Заключение

В настоящее время индустрия AppSec фокусируется на новейшей архитектуре, в которой API играет жизненно важную роль. Так что обезопасить их от хакеров - сложная, но не невыполнимая задача. Следуя основным подходам, упомянутым в этой статье, и получая знания из проекта OWASP, разработчик может защитить свой API от хакеров.