Comments 44
В такой статье не хватает вступительного абзаца,где в двух словах обьясняется что это и зачем.
Сервис для воровства данных
Воровать данные
Postman это штука для выполнения веб-запросов. В первую очередь, REST запросов. Для тестировщиков это по факту инструмент №1.
Типичный use case: бэкендеры запили новый метод REST API, он попал к тестировщикам, они пишут набор тестов в постмане. И потом этот набор регулярно - и автоматически! - гоняют для каждой новой версии бэка (он же ж развивается), чтобы выяснить - а вдруг что-то сломалось.
Суть статьи я не очень понимаю. Если какие-то придурки лезут постманом с долгоживущими токенами на прод к реальным данным, нууу... (слабоумие_и_отвага.jpg)
Забавно, что никто до этого не проверил что там в логах отправляется, причем большое количество разработчиков и компаний, предоставляют готовые шаблоны (коллекции?) для готовой работы с их API.
Если не записывать всё подряд в логи, и не (простите) читать эти логи на регулярной основе, в том числе с помощью наемных людей с улицы, то как тогда узнать что что то идет не так и исправить это? Рассчитывать на багрепорты бесполезно.
И поэтому надо перехватывать все запросы, в том числе и секретные переменные?
Тут нужна пояснительная бригада. Кто такой этот постман, какие такие переменные.
Postman - инструмент для создания, редактирования и выполнения HTTP запросов.
Штука довольно удобная - можно настраивать заголовки, тело запроса, изучать ответ сервера. Мне нравится тем, что можно создавать коллекции запросов (и даже сохранять примеры ответа от сервера на будущее, чтобы потом в оффлайне их изучать).
Ещё для выбранного запроса можно сразу получить сгенерированный код на одном из языков программирования (например C#). Можно настроить mock-сервер для тестирования веб-хуков (когда тестируемое приложение само отправляет запрос на стороннее API, которое нежелательно использовать при тестировании). Да и много других фичей.
Интерфейс Postman

Переменные, о которых идёт речь в статье: это часть строки запроса. Например, var1 и var2 в этом HTTP GET запросе:
https://example.com/items/var1/data?param2=var2
Но надо отметить, что есть общая рекомендация не передавать в path-сегментах (как var1) или query-параметрах (как var2) никакие чувствительные данные, даже при использовании HTTPS (а в этом случае все эти данные не передаются в открытом виде). И причины такой рекомендации - именно такие, что где-то по пути строка запроса может оказаться залогированной, например в логах веб-сервера.
Если нужно передавать чувствительные данные в запросе (например, токен авторизации), более предпочтительно их передавать в заголовках запроса, например так:
GET http://example.com/ HTTP/1.1
Host: decimalparser.net
Authorization: Bearer eyJbWbfs...
Постман используется на тестовом/девелоперском окружениии, и там априори не должно быть секретных либо персональных данных. Вообще. А кто гоняет на проде тесты - ССЗБ - любое закрытое ПО в наше время всегда напичкано шпионскими модулями, это надо помнить.
Хотя, с другой стороны, практика сбора всех данных действительно не очень этична и безопасна. Но ничего с этим не сделаешь, рыночек решает.
Всё-таки новость кажется несколько преувеличенной. Мельком в статье упоминается, что секреты из заголовков не отправляются в логи. В логах могут встретиться только те данные, которые были отправлены в сегментах URL или в query параметрах. Но и для тех и для других есть общая рекомендация не использовать для чувствительных данных - именно потому, что высока вероятность, что они осядут в логах где-то "по дороге". И хотя при использовании https эти данные не передаются в открытом виде, они легко могут оказаться например в логах веб-сервера. Вот статья об этом https://blog.httpwatch.com/2009/02/20/how-secure-are-query-strings-over-https/
Так что имхо, автор сам стреляет себе в ногу и жалуется на последствия. Хотя лично я не одобряю, что множество данных отправляется на неизвестные сервера, конкретно эта претензия выглядит надуманной.
Opensource альтернатива Postman: https://github.com/hoppscotch/hoppscotch
Полет нормальный.
Использовал его пару лет, много багов и несмотря на tauri тормозит очень сильно, возможно из-за macOS, возможно у меня кривые руки, опенсорс хорошо, но не стабильно
Opensource альтернатива
Точно там есть полные исходники? Кто-то уже проверял их на отправку данных "налево"?
А Bruno?
Есть еще бруно, https://github.com/usebruno/bruno
Opensource альтернатива Postman: https://curl.se/
Полет нормальный.
curl это всеже швейцарский нож, а вот например https://httpie.io/ то что надо надо
Ещё Insomnia https://github.com/Kong/insomnia. Вагон плагинов.
К сожалению не срослось с инопланетяненом - он не умеет импортировать коллекции из постмана
А кто вы, русскоговорящие и использующие постманы и другие зарубежные сервисы? И ведь серьезно обсуждают это, каждый подобный пост вызывает недоумение. Хабр ты кто такой?
@moderator подозреваю бота/ворованный аккаунт
Юзер молчал почти 10 лет, потом вернулся и стал сразу набрасывать
Что касается зарубежных, русскоговорящий != проживающий в России.
Почему использовать "зарубежные сервисы" это плохо? Я использую сервисы со всего мира и очень рад такой возможности.
Кстати, вас не смущает, что свой комментарий вы написали на кипрском зарубежном хабре?
учу пользоватся curl и mitmproxy. дорого, звонить понимающим, потстрадавшим от утечки паролей
Т.е. чел отправил в get-запросе секрет, подсунул поддельный сертификат, и кричит при этом о безопасности?
Что не так? А как надо было? Проблема в том, что он переменную засунул прямо в uri, или что он подсунул поддельный сертификат чтобы посмотреть что там отправляет постман, или проблема в самом постмане?
Что предлагаете делать? Продолжать дальше пользоваться постманом, и закрывать глаза на то, что он куда-то зачем то сохраняет все возможные апишки и креды к ним? А что если там были ключи от aws инфраструктуры, а хакер взял и получил таки логи постмана? Точка отказа от ответственность слишком большая ...
Зачем покупать ваш Сhа-rle=s Рr-0x-y? Чтобы в следующий раз обнаружить отправку личных данных в нем?
Есть же свободный mitmproxy. Постоянно юзаю его в подобных кейсах, все устраивает.
Чем он по вашему хуже?
Заметил, что Postman вообще отказывается отправлять запросы даже в локальной сети, если нет подключения к интернету. Это когда отлаживал API HTTP-сервера на базе ESP32, и очевидно, там не было интернета. Есть ли еще подобные Postman решения, которые работают корректно без интернета и с поддержкой вебсокетов? Curl не поддерживает вебсокеты.
Как правило не рекомендуется использовать конфиденциальные данные/секреты в URL, так как они могут быть залогированы прокси серверами.
По правде говоря, не совсем понятно, что за запрос вы вызывали, на основании скриншота из Postman, предполагаю, что это GET, следовательно ваш секрет мог быть передан только в URL.
Для корректности тестового сценария, я бы порекомендовал протестировать POST запрос с секретом в request body.
Перестал пользоваться Postman, но по другим причинам. Во-первых, он стал очень тяжёлым и неповоротливым. Во-вторых, для работы требует учетку. И самое главное, он перестал работать офлайн. Когда они убрали этот режим, это стало последней каплей. По работе требовалось запускать там, где интернета не было.
Начал искать альтернативы, многие из них тупо пытаются копировать постман, в том числе и его модель работы. Для себя нашёл Bruno, который понравился и идеологией (open source, работа офлайн и без учётки) и легковесностью. По сравнению с постманом, конечно, местами сыроват. Но для моих нужд вполне хватает
https://insomnia.rest/ вот еще альтернатива postman'у
А меня ещё называли параноиком когда я боролся за отказ от постмана :D
Давно выбрал чарли, и одной из причин было - люди смогли запилить простое и быстрое прокси на java, не отжирающее сотни мегабайт и живущее в десятке процессов, в отличии от постмана, бруно и им подобным... написанные конторами и людьми, которые без электрона уже наверное даже hello world не в состоянии написать, но при этом желающие много денег.
Postman логирует все ваши секреты и переменные окружения