Го­тов устро­ить тоталь­ный пен­тест API? Я подоб­рал для тебя отличные бес­плат­ные ути­литы, которые помогут быс­тро тес­тировать API веб‑при­ложе­ний вруч­ную и авто­мати­чес­ки.
 

Клиенты API

Это прог­раммы для тес­тирова­ния API (Application Programming Interface). Они упро­щают отладку и тес­тирова­ние кода, вклю­чая тес­тирова­ние на про­ник­новение.

 

Postman

От­расле­вой стан­дарт, о котором ты, ско­рее все­го, слы­шал, — Postman. Помимо удоб­ной отправ­ки зап­росов он обес­печива­ет встро­енную сре­ду выпол­нения JavaScript (Postman Sandbox) на базе Node.js.

Пи­шешь скрипт, который выпол­нится перед зап­росом или пос­ле получе­ния отве­та. Нап­ример, если нуж­на пред­варитель­ная авто­риза­ция или надо вытащить какой‑то токен. Есть перемен­ные окру­жения: опре­делил один раз — исполь­зуешь где угод­но. При­чем все фиш­ки дос­тупны на раз­ных уров­нях — для отдель­ного зап­роса или целой кол­лекции зап­росов. Да, зап­росы груп­пиру­ются в кол­лекции. Есть монито­ры, тес­ты и мно­гое дру­гое для отладки.

По­пуляр­ность Postman пошат­нулась, ког­да его раз­работ­чики ста­ли делать став­ку на обла­ко, а не на пол­ностью локаль­ное хра­нение. У сооб­щес­тва появи­лось обос­нован­ное недове­рие к инс­тру­мен­ту, а ана­логи ста­ли набирать популяр­ность.

 

Bruno

По моему мне­нию, это Postman тех вре­мен, ког­да он был иде­аль­ным и хра­нил инфу локаль­но. Есть 99% всех необ­ходимых воз­можнос­тей и ничего лиш­него. Под­держи­вает все методы HTTP: POST, GET, PUT и дру­гие. Недос­таточ­но? Добавь свой: в меню выбора есть пункт Add custom. Зап­рос на 100% под тво­им кон­тро­лем: заголов­ки, отдель­но вынесен­ные заголов­ки авто­риза­ции, прок­си и дру­гие парамет­ры.

Тес­тировать мож­но не толь­ко REST API: кро­ме HTTP-зап­росов мож­но исполь­зовать GraphQL, gRPC и WebSocket.

Ска­чай Bruno с офи­циаль­ного сай­та, там есть вер­сии для всех сов­ремен­ных плат­форм. Бес­плат­ной вер­сии хва­тит за гла­за и пен­тесте­ру‑оди­ноч­ке, и неболь­шой коман­де. Боль­шинс­тво фишек плат­ной вер­сии нуж­ны толь­ко на уров­не энтер­прай­за.

Рабочий экран Bruno
Ра­бочий экран Bruno

Для тес­та исполь­зуй, нап­ример, этот сер­вис, ими­тиру­ющий API, или похожий. Зарегис­три­руй­ся и сге­нери­руй ключ авто­риза­ции x-api-key.

От­крой Bruno. В интерфей­се сра­зу появит­ся пус­той зап­рос. Поменяй тип зап­роса на POST, ука­жи URL https://api.restful-api.dev/register. На вклад­ке Headers добавь заголо­вок x-api-key и свой токен. На прак­тике тебе понадо­бят­ся и дру­гие спо­собы авто­риза­ции; в Bruno они зада­ются на уров­не кол­лекции.

Пе­рей­ди на вклад­ку Body, выбери тип JSON и ука­жи в зна­чении объ­ект:

{
"email": "hacker@hacker.ru",
"password": "securePassword123",
"name": "PWNer"
}

Жми Send, что­бы отпра­вить зап­рос и уви­деть резуль­тат.

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    1 Комментарий
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии