Руководство по Fuzz Faster U Fool (ffuf)

Дата: 24.08.2021. Автор: Игорь Б. Категории: Статьи по информационной безопасности

В этой статье пойдет речь о том, как использовать Fuzz Faster U Fool (ffuf). Это полезный инструмент для фаззинга с открытым исходным кодом.

Введение

Fuzz Faster U Fool использует метод командной строки для веб-настройки на веб-сервере. Он был создан юзером из Twitter под ником @joohoi. Многие профессионалы высоко оценили ffuf с момента его появления в сети, особенно в плане его внимательности к ошибкам. Стоит отметить, что инструмент отличается высокой скоростью работы, универсальностью в использовании и способностью интегрироваться с другими программами.

Установка

Программа запускается в терминале Linux или в командной строке Windows. Обновление из исходного кода не сложнее, чем компиляция, за исключением включения флага «-u».

go get -u github.com/ffuf/ffuf

В связи с тем, что в данном примере пользователь использует Kali Linux, он найдет ffuf в репозиториях apt, что позволит установить его, выполнив простую команду.

apt install ffuf

После установки данной программы, чтобы узнать ее параметры, все, что нужно сделать,- это просто использовать опцию «-h» для вызова справки.

ffuf -h

Параметры ввода

Это параметры, которые помогают пользователям предоставлять необходимые данные для веб-поиска по URL-адресу с помощью списков слов.

  • Обычная атака

Для атаки по умолчанию нужно использовать параметры «-u» для целевого URL-адреса и «-w» для загрузки списка слов.

ffuf -u http://testphp.vulnweb.com/FUZZ/ -w dict.txt

После выполнения команды пользователь сосредоточится на полученных результатах.

  • Во-первых, стоит отметить, что по умолчанию он работает на HTTP с использованием метода GET.
  • Виден также статус кода ответа [200, 204, 301, 302, 307, 401, 403, 405}. Можно проследить прогресс выполняемой атаки.
  • Использование нескольких списков слов

Иногда одного списка слов недостаточно, чтобы получить желаемые результаты. В этом случае пользователь может применить несколько списков слов одновременно, чтобы добиться своего. Fuzz Faster U Fool имеет возможность запускать столько списков слов, сколько необходимо для успешной атаки.

В данном примере пользователь предоставил программе доступ к двум словарям (dict.txt:W1 и dict.txt:W2). Она будет использовать их одновременно.

ffuf -u https://ignitetechnologies.in/W2/W1/ -w dict.txt:W1 -w dns_dict.txt:W2
  • Игнорирование комментария к списку слов

Как правило, список слов по умолчанию имеет некоторые комментарии, которые могут повлиять на точность полученных результатов. В этом случае пользователь может использовать параметр «-ic», который поможет ему избавиться от любых ограничений. Иногда нужно больше сосредоточиться на атаке, а не на баннерах инструментов, для этого следует применить параметр «-s», который удалит любой баннер.

ffuf -u http://testphp.vulnweb.com/FUZZ/ -w dict.txt

Пользователь замечает, что некоторые комментарии отображены в результатах, если выполнить команду выше. После использования параметров «-s» и «-ic» любые комментарии и баннеры будут удалены.

ffuf -u http://testphp.vulnweb.com/FUZZ/ -w dict.txt -ic -s
  • Расширения

Человек может выполнить поиск файла с определенным расширением на веб-сервере с помощью параметра «e». Все, что нужно сделать, это просто указать расширение и имя файла вместе с параметром. Чтобы получить необходимый результат, надо выполнить подходящую команду.

ffuf -u http://192. 168.1.12/dvwa/FUZZ/ -w dict.txt -e .php
  • Запросы и различные режимы

Burp Suite – это профессиональная платформа для мониторинга безопасности веб-приложений. Ее различные инструменты действуют согласованно, чтобы провести успешное тестирование на проникновение. Функция «cluster bomb» дает возможность пользователю использовать несколько полезных нагрузок. Для каждого заданного местоположения существует отдельный пакет полезных нагрузок. Атака проходит через каждый пакет полезной нагрузки один за другим, проверяя все возможные варианты.

Существует несколько параметров этого инструмента, которые помогают использовать скрипт. Например, параметр «-request» позволяет применять запрос в атаке; «-request-proto» дает возможность определить сам параметр, «-mode» помогает выбрать режим атаки.

Прежде всего, человек использует случайные учетные данные на целевой URL-странице и настраивает прокси-сервер для захвата запроса в режиме перехвата на Burp Suite.

Теперь на вкладке «Intercept» следует изменить предоставленные учетные данные с помощью добавления HFUZZ и WFUZZ. HFUZZ добавляется перед «uname» и WFUZZ – перед «pass». Затем надо скопировать и вставить этот запрос в текст и имя в соответствии с желанием пользователя. В данном случае человек назвал файл brute.txt.

Теперь пользователь переходит к основной атаке, где параметр «-request» содержит текстовый файл запроса. «-request-proto» поможет ему создать прототип http, а «-mode» будет ответственен за атаку «Cluster bomb». Списки слов, которые пользователь использует (users.txt и pass.txt) состоят из инъекций SQL. Введя команду, представленную ниже, пользователь начнет атаку.

ffuf -request brute.txt -request-proto http -mode clusterbomb -w users.txt:HFUZZ -w pass.txt:WFUZZ -mc 200

Как можно увидеть в результатах атаки, пользователь успешно обнаружил, что SQL-инъекции эффективны для этой конкретной цели.

Параметры сопоставления

Если пользователь хочет, чтобы ffuf показывал только те данные, которые важны для веб-фаззинга, ему следует обратить внимание на эти параметры.  Например, это могут быть HTTP-код, строки, слова, размер и регулярные выражения.

  1. Код HTTP

Чтобы понять этот параметр, нужно рассмотреть простую атаку, в которой пользователь сможет увидеть, какие HTTP-коды появляются в результатах.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt

Точно понятно, что получены коды 302 HTTP и 200 HTTP.

Если нужно просмотреть определенные атаки, например, для кода 200 HTTP, следует использовать параметр «-mc» вместе с конкретным номером. Чтобы проверить работу этого параметра, надо просто выполнить команду.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -mc 200
  • Строки

Инструмент выдает результаты для определенных строк в файле с помощью параметра «-ml». Пользователь может использовать его, указав нужные ему строки.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -ml 15
  • Слова

Аналогично, поскольку вышеперечисленные опции соответствуют функции, она может предоставить результат с определенным количеством слов. Чтобы добиться этого, следует использовать параметр «-mw» вместе с тем количеством слов, которые пользователь желает просмотреть в результатах.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -mw 53
  • Размер

Пользователь может использовать параметр «-ms» вместе с конкретным размером, который он хочет просмотреть в результатах.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -ms 2929
  • Регулярные выражения

Это последний из всех параметров сопоставления, доступных в этом инструменте. Пользователь собирается произвести фаззинг LFI, сопоставив строку с последующим шаблоном «root:x» для данного словаря.

Человек использует URL-адрес, который может обеспечить эту функциональность, и с помощью параметра «-mr» он определяет соответствующую строку «root:x».

Так выглядит специальный список слов.

Используя этот список слов, пользователь введет приведенную ниже команду, чтобы добавить параметр «-mr» в скрипте атаки.

ffuf -u http://testphp.vulnweb.com/showimage.php?file=FUZZ -w dict2.txt -mr "root:x"

Здесь пользователь получил HTTP на ответ 200 для /etc/passwd для данного списка слов.

Параметры фильтрации

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

  1. Код HTTP

Для параметра «-fc» необходим конкретный код состояния HTTP, который пользователь хочет удалить из полученных результатов.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -fc 302
  • Строки

С помощью параметра «-fl» есть возможность удалить определенную строку из результата или отфильтровать ее из атаки.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -fl 26
  • Размер

Параметр «-fs» дает возможность отфильтровывать указанный размер, описанный пользователем во время атаки.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -fs 2929
  • Слова

Параметр «-fw» позволяет отфильтровывать количество слов из результатов, которые пользователь хочет получить.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -fw 83
  • Регулярные выражения

Параметр «-fr» дает возможность удалить определенное регулярное выражение. В данном случае пользователь пытается исключить файлы журналов из полученных результатов.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -fr "log"

Общие параметры

Ниже представлены общие параметры этого инструмента. Они полностью связаны с процессом веб-фаззинга.

  • Custom Auto Calibration

Известно, что способность компьютера или машины автоматически выполнять калибровку известна под названием «Auto Calibration». Калибровка – это процесс предоставления измерительному прибору информации, необходимой для понимания контекста, в котором он будет использоваться. При сборе данных калибровка компьютера обеспечивает точность его работы.

Человек может настроить эту функцию в соответствии с его потребностями с помощью параметра «-acc», который нельзя использовать без параметра «-ac».

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -acc -ac -fl 26 -ac -fs 2929 -ac -fw 54
  • Цвет

Иногда разделение по цветам помогает привлечь дополнительное внимание ко всем деталям, имеющим значение в результатах. За это отвечает параметр «-c», он помогает разделить данные по категориям.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -c
  • Максимальное время выполнения задачи

Если человек хочет провести фаззинг в течение ограниченного периода времени, он может использовать параметр «-maxtime». Следует ввести команду, чтобы указать выбранный временной интервал.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -maxtime 5
  • Максимальное время выполнения работы

С помощью параметра «-max time-job» пользователь может установить ограничение по времени для конкретной работы. Используя эту команду, человек пытается ограничить время выполнения задания или запроса.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -maxtime-job 2
  • Задержка

С помощью параметра «-p» пользователь добавит определенную задержку для каждого запроса, предлагаемого атакой. Благодаря этой функции запрос более эффективен и предоставляет более четкие результаты.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -p 1
  • Скорость запроса

Пользователь может выбрать нужную ему скорость запросов для каждой своей атаки с помощью параметра «-rate». К примеру, человек создает запрос в секунду в соответствии с желаемой атакой.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -rate 500
  • Функции ошибок

Существует три параметра, которые поддерживают функцию ошибки. Первым параметром является «-se», он представляет собой «ложную ошибку». В нем говорится, является ли следующий запрос подлинным или нет. Второй параметр «-sf» остановит атаку, когда более 95% запросов засчитаны как ошибка. Третьим и последним параметром является «-sa», он представляет собой комбинацию предыдущих параметров.

В данном примере пользователь использует параметр «-se».

Ffuf -u http://ignitetechnologies.in/W2/W1/ -w dict.txt:W1 -w dns_dict.txt:W2 -se
  • Режим «Verbose»

Как многие уже знают, режим «Verbose» — это функция, используемая во многих операционных системах ПК и языках программирования. Она предоставляет дополнительную информацию о том, что делает компьютер и какие драйверы и приложения он загружает при инициализации. В программировании данный режим предоставляет человеку точные выходные данные для целей отладки, что облегчает саму отладку программы. Применяется параметр «-v».

Ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -v
  • Потоки выполнения

Параметр «-t» используется для ускорения или замедления процесса. По умолчанию он установлен на 40. Если пользователь хочет ускорить процесс, нужно увеличить его значение.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -t 1000

Параметры вывода

Пользователь будет сохранять результаты проведенных атак в целях ведения учета, улучшения читаемости и нахождения потенциальных ссылок. Параметр «-o» нужен для сохранения выходных данных, но нужно указать его формат с помощью другого параметра «-of».

  • Вывод данных в формате HTML

Пользователь использует параметр «-of» и выбирает формат HTML. С помощью команды он может сохранить отчет в формате HTML.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -o file.html -of html

Теперь, после завершения атаки, нужно проверить, соответствует ли файл с выходными данными данному формату или нет. Как видно, сам файл относится к HTML.

  • Вывод данных в формате CSV

Аналогично, можно создавать файлы CSV с помощью параметра «-of», где csv – это значения, разделенные запятыми. К примеру:

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -o file.csv -of csv

Теперь, после завершения атаки, нужно проверить, соответствует ли файл с выходными данными данному формату или нет. Как видно, сам файл относится к CSV.

  • Вывод данных во всех доступных форматах

Аналогично, если нужно получить данные во всех форматах, следует использовать параметр «-of all». Например, это может быть json, ejson, html, md, csv, ecsv.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -o output/file -of all

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

Опции HTTP

Иногда для запуска веб-фаззинга требуются подробности, такие как HTTP-запрос, файлы cookie, HTTP-заголовок.

  1. Тайм-аут

Тайм-аут действует как крайний срок для выполнения события. Параметр «-timeout» помогает активировать данную опцию.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -timeout 5
  • Заголовок хоста

Если пользователь хочет выполнить фаззинг поддомена, он может использовать параметр «-H» вместе со списком слов доменного имени.

Ffuf -u https://google.com -w dns_dict.txt -mc 200 -H “HOST: FUZZ.google.com”
  • Рекурсия

Рекурсия – это механизм повторного использования объектов. Если программа требует, чтобы пользователь получил доступ к функции внутри другой функции, это называется рекурсивным вызовом функции. Используя параметр «-recursion», пользователь может реализовать эту функциональность в его атаках.

ffuf -u "http://testphp.vulnweb.com/FUZZ/" -dict.txt -recursion
  • Атака с помощью Cookie

Иногда веб-фаззинг не эффективен на аутентифицированном сайте без аутентификации. Есть параметр «-b», с помощью которого пользователь может достичь своей цели, предоставив файлы Cookie сеанса.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -b "PHPSESSID:"7aaaa6d88edcf7cd2ea4e3853ebb8bde""
  • Replay-Proxy

Существуют ограничения по скорости при использовании функции Intruder в бесплатной версии пакета Burp (Community Edition). Атака была сильно замедлена, и каждый новый «приказ» еще больше замедлял ее.

В данном случае пользователь использует прокси-сервер Burp Suite для получения результатов и их оценки. Во-первых, следует установить прокси-сервер localhost на порту под номером 8080.

Теперь пользователь использует параметр «-replay-proxy», который помогает ему получить локальный прокси-сервер хоста, что человек установил на предыдущем шаге на порту под номером 8080.

ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -replay-proxy http://127.0.0.1:8080 -v -mc 200

Эта атака покажет результаты на двух платформах. Первая платформа на терминале Kali, а вторая – на вкладке «HTTP history» в Burp Suite. С помощью различных методов пользователь может лучше понять цель и проанализировать результаты атаки.

Заключение

Ffuf часто сравнивают с такими инструментами, как dirb или dirbuster, что, хотя и является понятным в определенной степени, не является разумным решением. Хотя FFUF можно использовать для атаки брутфорс, его истинная мощь заключается в простоте. Лучшим аналогом для него будет Burp Suite Intruder или Turbo Intruder.

Важно! Информация исключительно в учебных целях. Пожалуйста, соблюдайте законодательство и не применяйте данную информацию в незаконных целях.

ProxyBroker — Документация ProxyBroker 0.2.0

[Finder | Проверка | Server]

ProxyBroker — это инструмент с открытым исходным кодом, который асинхронно находит общедоступные прокси из нескольких источников и одновременно проверяет их.

Возможности

  • Находит более 7000 рабочих прокси из ~50 источников.
  • Поддерживаемые протоколы: HTTP(S), SOCKS4/5. Также метод CONNECT к портам 80 и 23 (SMTP).
  • Прокси можно фильтровать по типу, уровню анонимности, времени отклика, стране и статусу в DNSBL.
  • Работа в качестве прокси-сервера, распределяющего входящие запросы на внешние прокси. С автоматической ротацией прокси.
  • Все прокси проверяются на поддержку файлов cookie и Referer (и POST-запросов, если требуется).
  • Автоматически удаляет дубликаты прокси.
  • Является асинхронным.

Требования

  • Python 3.5 или выше
  • aiohttp
  • айоднс
  • максминддб

Установка

Чтобы установить последнюю стабильную версию из pypi:

 $ pip install proxybroker
 

Последнюю разрабатываемую версию можно установить прямо с GitHub:

 $ pip install -U git+https://github.com/constverum/ProxyBroker.git
 

Использование

Примеры CLI

Найти

Найти и показать 10 HTTP(S) прокси из США с высоким уровнем анонимности:

 $ proxybroker find --types HTTP HTTPS --lvl High --countries US - -строгий -l 10
 
Grab

Найти и сохранить в файл 10 прокси США (без проверки):

 $ proxybrokergrab --countries US --limit 10 --outfile .
/proxies.txt
Serve

Запуск локального прокси-сервера, распределяющего входящие запросы в пул найденных HTTP(S) прокси с высоким уровнем анонимности:

 $ proxybroker serve --host 127.0.0.1 --port 8888 --types HTTP HTTPS --lvl High
 

Примечание

Запустите proxybroker --help для получения дополнительной информации о доступных параметрах.

Запустите proxybroker <команда> --help для получения дополнительной информации о команде.

Пример базового кода

Найти и показать 10 работающих прокси-серверов HTTP(S):

 import asyncio
из импортного брокера proxybroker
асинхронное шоу (прокси):
    пока верно:
        прокси = ожидание прокси.get()
        если прокси Нет: перерыв
        print('Найден прокси: %s' % прокси)
прокси = asyncio.Queue()
брокер = Брокер (прокси)
задачи = asyncio.gather(
    broker.find (типы = ['HTTP', 'HTTPS'], лимит = 10),
    показать (прокси))
цикл = asyncio.get_event_loop()
loop. run_until_complete(задачи)
 

Еще примеры.

TODO

  • Проверить пинг, время отклика и скорость передачи данных
  • Проверить доступ к сайту (Google, Twitter и т. д.) и даже собственный URL-адрес
  • Информация о времени безотказной работы
  • Контрольная сумма возвращенных данных
  • Поддержка аутентификации прокси
  • Поиск исходящего IP для каскадного прокси
  • Возможность указать адрес прокси без порта (попробуйте подключиться на дефолтных портах)

Содействие

  • Форк: https://github.com/constverum/ProxyBroker/fork
  • Создайте свою ветку функций: git checkout -b my-new-feature
  • Зафиксируйте свои изменения: git commit -am ‘Добавить функцию’
  • Отправить в ветку: git push origin my-new-feature
  • Отправьте запрос на вытягивание!

Лицензия

Лицензия Apache License, версия 2.0

Этот продукт включает данные GeoLite2, созданные MaxMind, доступные с http://www. maxmind.com.

Содержание:

  • Справочник по API
    • Брокер
    • Прокси
    • Провайдер
  • Примеры
  • Журнал изменений
    • `0.2.1`_ (не выпущено)
    • 0.2.0 (2017-09-17)
    • 0.1.4 (07.04.2016)
    • 0.1.3 (2016-03-26)
    • 0.1.2 (27 февраля 2016 г.)
    • 0,1 (23 февраля 2016 г.)
    • 0.1b4 (21 января 2016 г.)
    • 0.1b3 (16.01.2016)
    • 0.1b2 (10 января 2016 г.)
    • 0.1b1 (2015-12-29)
    • 0.1a2 (24.11.2015)
    • 0.1a1 (11.11.2015)
  • Индекс
  • Индекс модуля
  • Страница поиска

Как использовать Pip с прокси-сервером

Попробуйте более быстрый и простой способ управления зависимостями Python. Используйте Python 3.9 от ActiveState и создайте собственную среду выполнения с нужными вам пакетами и зависимостями. Начните бесплатно, создав учетную запись на платформе ActiveState или войдя в свою учетную запись GitHub.

По умолчанию pip устанавливает сторонние пакеты из индекса пакетов Python (PyPI). В корпоративных средах, расположенных за брандмауэром, вам может потребоваться использование прокси-сервера HTTP для перенаправления внутреннего трафика на pypi.org или любой другой репозиторий, в котором размещены пакеты Python.

Зачем использовать прокси-сервер Pip?

Прокси-сервер для pip чаще всего используется для обеспечения безопасности и конфиденциальности, но также может использоваться для управления:

  • Безопасность и конфиденциальность — прокси-сервер можно использовать в сочетании с брандмауэрами для повышения безопасности внутренней сети, поскольку запросы от пользователей в локальной сети анонимизируются через прокси-сервер.
  • Контроль — организации с внутренним репозиторием пакетов Python могут вместо этого перенаправлять любой исходящий трафик, направленный на pypi. org, в свой частный репозиторий, чтобы предотвратить установку разработчиками неутвержденных пакетов.

    Например, платформа ActiveState предоставляет репозиторий артефактов ActiveState (AAR), который содержит колеса Python, созданные из исходного кода. Используя прокси-сервер, вы можете быть уверены, что ваши разработчики всегда работают с безопасными и утвержденными пакетами.

Шифрование/дешифрование потока данных между клиентом и корпоративным веб-сервером через прокси-сервер

Как использовать Pip с прокси-сервером

Pip поддерживает базовую аутентификацию на основе HTTP. Это делается путем встраивания учетных данных имени пользователя/пароля в URL-адрес.

Pip также поддерживает завершение командной строки в bash. Чтобы настроить использование bash для параметров прокси-сервера в командной строке Linux, введите: 

  python -m pip завершение --bash >> ~/.profile     

Чтобы установить пакеты Python через прокси-сервер, выполните следующие действия.

sudo pip install —proxy http:// :<пароль> @ :
    902 30237

    Windows :

       pip install --proxy http://      :      @            :      < port#>     

    Для прокси, для которых требуется только имя пользователя: 

      pip install --proxy http://        @  
    8   
    8_servername0237  :    <Порт#>    

    для установки. > @ : <Порт №> Требования

    .0002 Если у вас есть прокси-сервер между вашей виртуальной средой и репозиторием пакетов Python, вам необходимо установить переменные среды прокси-сервера:

    Ubuntu Linux:

    # Добавить текстовый шаблон в конце ‘~/. bashrc’:

      HTTP_PROXY=http://    :<пароль>    @    : 

    7 Экспорт HTTP_PROXY

    Не забудьте экспортировать переменные после их установки, чтобы сделать их доступными для сеанса внешней оболочки.

    Windows :

      # Добавить в переменные среды: 
      set HTTP_PROXY=    :   

    Вы также можете изменить переменную среды: PIP_USER_AGENT_USER_DATA, чтобы включить строку в формате JSON в переменную агента пользователя, используемую в запросах pip.

    Альтернативное решение для обеспечения безопасности и управления пакетами Python — попробуйте платформу ActiveState

    Разрешение зависимостей лежит в основе платформы ActiveState. Когда вы создаете проект и начинаете добавлять требования, платформы сообщают вам, какие зависимости имеют эти требования.

    Платформа ActiveState — это облачный инструмент сборки для Python.

    Он обеспечивает автоматизацию сборки и устранение уязвимостей для:

    • Ядра языка Python, включая Python 2.7 и Python 3.5+
    • пакетов Python и их зависимостей, в том числе:
    • Транзитивные зависимости (т. е. зависимости зависимостей)
    • Связанные библиотеки C и Fortran, так что вы можете создавать пакеты обработки данных
    • Зависимости на уровне операционной системы для Windows, Linux и macOS
    • Общие зависимости (например, OpenSSL)
    • Найдите, исправьте и автоматически перестройте безопасную версию пакетов Python, таких как Django и среды, за 9 минут.0010

    Платформа ActiveState стремится обрабатывать все зависимости для каждого языка. Это означает работу с библиотеками вплоть до уровня C/C++, внешними инструментами и всеми существующими условными зависимостями. Идя дальше, наша конечная цель — поддержка многоязычных проектов. Это означает, что вы можете создать проект, используя пакеты Python и Perl, и мы позаботимся о том, чтобы оба языка использовали одну и ту же (актуальную) версию OpenSSL.

    Управление зависимостями Python в действии

    Получите практическое представление о том, как платформа ActiveState может помочь вам управлять зависимостями для сред Python. Просто запустите следующую команду, чтобы установить Python 3.9 и наш менеджер пакетов State Tool:

    Windows

     powershell -Command "& $([scriptblock]::Create((New-Object Net.WebClient).DownloadString( 'https://platform.activestate.com/dl/cli/install.ps1'))) -activate-default ActiveState-Labs/Python-3.9Beta" 

    Linux

     sh <(curl -q https://platform.activestate.com/dl/cli/install.sh) --activate-default ActiveState-Labs/Python-3.9Beta 

    Теперь вы можете запустить установку состояния . Узнайте больше о том, как использовать State Tool для управления средой Python.

    Расскажите нам о своем опыте на форуме сообщества ActiveState.

    Посмотрите это видео, чтобы узнать, как использовать платформу ActiveState для создания среды Python 3.