Обложка канала

ServerAdmin.ru

12437 @srv_admin

Авторская информация о системном администрировании.

ServerAdmin.ru

3 года назад
Открыть в
​​Думаю те, кто используют curl в консоли, не раз сталкивались с тем, что не получается что-то скачать через эту утилиту. Копируешь ссылку из браузера, отдаёшь curl, но в итоге грузится либо какая-то заглушка, либо вообще ничего не грузится. Это возникает из-за того, что утилиту curl легко распознать и заблокировать с её помощью загрузку. Делают это скорее всего для того, чтобы отвадить ботов и другие системы автоматизации, которые используют эту утилиту. Для того, чтобы обходить это ограничение, существует проект curl-impersonate. Авторы подготовили специальную сборку curl, которая максимально похожа на обычные браузеры: Chrome, Edge, Safari или Firefox. Авторы считают, что чаще всего curl определяется на этапе TLS handshake. Для того, чтобы обойти эти проверки, они собирают curl с TLS библиотеками, которые используют браузеры, а не OpenSSL, как у обычной curl. Также по умолчанию используются шифры и заголовки, такие же, как у браузеров. Для каждого браузера есть свой набор параметров, поэтому загрузка с помощью модифицированного curl выглядит примерно так: # curl_chrome110 https://www.wikipedia.org Под каждый браузер своя сборка. Для использования достаточно загрузить подготовленные бинарники из репозитория: github.com/lwthike…releases. На стандартном Debian 11 мне больше ничего не пришлось делать. В репе авторы указывают, что нужны некоторые пакеты: # apt install libnss3 nss-plugin-pem ca-certificates У меня они уже стояли. Есть и Docker образы. Проект интересный и полезный. Модифицированную версию curl имеет смысл использовать для мониторинга, если у вас есть возможность выбирать бинарник. Мониторинг будет более достоверен и максимально приближен к реальным браузерам, насколько это возможно для консольной утилиты. ⇨ Исходники #curl #terminal #linux